Migration from wxWidgets 2.8.12 to wxWidgets 3.0.2 - features.h - wxwidgets

I have recently migrated my project from wxWidgets 2.8.12 to 3.0.2. I am using Eclipse as my IDE under Windows 7 OS. The GCC version is 4.6.2.
I have successfully compiled debug and release versions of wxWidgets 3.0.2 and integrated to Eclipse. I compiled my project and I got the error in features.h file saying missing ")". When I read the purpose of features.h, to my understanding it was meant for compatibility with previous versions of wxWidgets so I have deleted everything in features.h and then compiled my project and now it compiles with no errors and everything in my project functions fine when I run the binary.
By the way, I had the same problem with TDM compilers as well. I have also rebuild the index of Eclipse in case there were remnants from wxWidgets 2.8.12 which could confuse the compiler but the problem with features.h remained there until I deleted everything in features.h.
My question is: By deleting the features.h, am I going to run into a problem in the future or will wxWidgets function normally?
Best regards,

Don't do that.
Find out where the real problem lies. There are a lot of people that successfully build wxW with gcc.
The best and easiest test is to build wxW, then build 'minimal' sample. Any error when doing that?
features.h is there for a purpose; by deleting its contents, the symbols there may become wrongly [un-]defined. Further more, if you have deleted contents of features.h after you had compiled wxW but before compiling your project, then that is a completely wrong build.

Related

CMake: "The C compiler identification is unknown" in Windows SDK

This is the first time I've come across CMake. When I follow CMake instructions to extract a C# project, it give the below error.
Selecting Windows SDK version to target Windows 10.0.15063.
The C compiler identification is unknown
The CXX compiler identification is unknown
CMake Error in CMakeLists.txt:
No CMAKE_C_COMPILER could be found.
CMake Error in CMakeLists.txt:
No CMAKE_CXX_COMPILER could be found.
I tried to fix the error by googling, but not able to find the problem yet. Can someone please help me.
Note:
I am running CMake on a Windows 10 computer, that has Windows 8.1 SDK, Visual studio 2015, 2017 installed.
I was having the same issue with a very similar system configuration. In my case, it appears to have been related to this question which pointed me to this bug report.
So the fix (for me) was to update CMake:
Uninstall your current version of CMake.
If you installed it using an installer script, you'll need to run the uninstaller as noted on CMake.org.
Installer tool has changed. Uninstall CMake 3.4 or lower first!
If you installed a zipped portable version, you can simply delete it and/or move it out of your PATH environment variable.
Download the latest CMake (at time of writing, 3.14.5). This time I opted to install the zipped version and manually add it to my PATH environment variable since I only ever use CMake from command prompt anyway, but you're welcome to use the MSI instead.
And after that everything worked fine! Hope this helps.

wxWidgets Libraries missing from 3.1.0

I am building a solution with CMake that uses wxWidgets. I have downloaded the source code for 3.1.0 and compiled it without issue. However, there are three libraries that my solution needs that are not in 3.1.0: dbgrid, mono, and odbc. I tried compiling 3.0.2, but VStudio 2015 will not compile the source code because it is outdated. I tried building 3.0.2 with GCC, but the Makefile was not recognized.
Any thoughts/suggestions on how I can build or find these three libraries, or build wxWidgets 3.0.2?
Thank you.
You should use the components with the same version known to work with your "solution". For example, use the same wxWidgets version that worked without issues.
On a more detailed note, ODBC component, including dbgrid, have been removed from anything later than wxWidgets 2.8; I have no idea what "mono" is but it doesn't sound like anything in wxWidgets. So going with any 3.x version is not going to help you. You might need to dig up version 2.8.12 from somewhere.
Also, for the sake of completeness, I have no idea what "the Makefile was not recognized" means, but GCC is a pretty reliable way of building wxWidgets, regardless the version of either of the two or the flavour of the former.

Including Missing DLLs

I am developing in DX 10/11, & when I tried the code on another computer with a NV 660, it said that d3dx11d_43 was not found. I reinstalled the Visual C++ 2012 32/64 bit & DirectX Runtime, but still says that. I think that the user needs to install the SDK or something.
I get the warning that the debug info cant be found.
From what I have reading, it is because I have something that depends on something debug related. No idea what though.
Is there a way to make the game compile with most, if not all, of the DLLs? I dont mind the extra size. The content of many games out-weigh the extra DLLs that are used.
I did compile as Release.
Edit:
Removed 1st question, since no one answered it.
You can add the dlls you need to the resource file, then compile the resource file to your exe file, and at last, parse the resource file at run time to get the dlls you need. here is a similar question, you can take a look.
d3dx11d_43 is a debug version of d3dx11_43 which your program links with when you do a debug build rather than a release build. The debug version is not included in the directx runtime installer, only in the SDK.
The license does not allow you to distribute it either.
You should build and distribute release versions of the code, or else require users to install the SDK which probably wouldn't be so popular!

wxWindows 2.9 binary for windows

After an upgrade to the new Haskell Platform, my existing wxHaskell programs are broken.
They all seem to now require wxWidgets 2.9, for which I can't find any binary versions.
wxPack has 2.8, and beyond that one has to get a compiler and build it locally from what I see.
There are tutorials on this from various sources, each a few pages long, with various advice on setup, changing configurations, etc. Install wxConfig, install minGW compilers, setup configurations, rebuild, etc.
Is there any source of a simple binary install? I'd hope for some simple apt-get or cabal like tool, Haskell library tools (on Windows?) seem less integrated than others that I'm familiar with.
(Update) I did install and compile wxWidgets locally, and still cannot get the wxHaskell components to install. I'm sure that all of this just requires some fairly simple details, but again after some time already, hope not to have to spend a lot more time on this, and wish it was more automated!
Configuring wxc-0.90.0.3...
Configuring wxc to build against wxWidgets 2.9
setup.exe: Missing dependencies on foreign libraries:
* Missing C libraries: wxmsw29ud_all, wxtiffd, wxjpegd, wxpngd, wxzlibd,
wxregexud, wxexpatd, wxregexud
This problem can usually be solved by installing the system packages that
provide these libraries (you may need the "-dev" versions). If the libraries
are already installed but in a non-standard location then you can use the
flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are.
cabal: Error: some packages failed to install:
wx-0.90.0.1 depends on wxc-0.90.0.3 which failed to install.
wxc-0.90.0.3 failed during the configure step. The exception was: ExitFailure 1
wxcore-0.90.0.1 depends on wxc-0.90.0.3 which failed to install.
Yes, you can. CodeLite (C++ IDE I use) was recently upgraded to use wx29.
Since there are no binaries yet on repo, Dave set up some. Find all instruction in CodeLite's wiki below
wxWidgets 2.9 Packages and Repositories
If you are using windows Just go to download page for Codelite and download codelite with wxWidgets. Install it, copy the installed wxWidgets directory wherever it is needed!
Also it seems like there are official binaries. I have never tested download anything there so try yourself. The link is this one
Feel free to ask any question

clang Can't find any frameworks

I've been tearing my hair out over this, and Google hasn't yielded much so my problem must be caused by my own specific brand of stupidity.
Basically, having installed Xcode 4 I removed the /Developer-old folder (properly, can't remember the command but I used the uninstall script rather than sticking it in the trash).
Xcode builds projects fine, and the latest version of all the Objective-C frameworks seem to live in /System/Library/Frameworks, but when I compile something (which built fine in the Xcode 3 days) clang complains that it can't find any headers, e.g:
fatal error: 'Cocoa/Cocoa.h' file not found
I've tried forcing the framework search path with -F to no avail- is there a common underlying issue or have I just screwed my machine?
Reinstall the developer tools. It will take a lot less time than tracking down whatever you broke.