Back to the docs page Previous Next Building on Windows
If you also want to try the demo apps: TroubleshootingWhen I run one of the apps, a black window appears for just a split second, then disappears, and nothing else happens.
Most of these apps are command-line applications that are meant to be run in a terminal or command shell. They do not open up a graphical interface for you. If you do not supply any arguments, then they will just print the usage information for the application (which is what you are seeing for a split-second in that black window), and then terminate. If this is confusing to you, then you might want to learn about using the command shell.
When I switch between Debug and Release mode, it doesn't rebuild everything like it should.
Due to a series of unfortunate design decisions by Microsoft, we have been forced to make both Debug and Release modes target the same filename. Hence, whenever you switch between the two, you must do a clean build, or else it will see the one it already built and think it does not need to build anything. Why don't we just put them in different folders, as is the default in VC++? Because several of our apps rely on external files--imagine that. Why not just duplicate those external files? Because keeping the size of our archive small is important to us. Further, redundant files is bad practice because it propagates bugs. Why not just use a symbolic link? Not all versions of Windows support those. Why not just require everyone to have the latest version of Windows? Because Windows is not free, and I will not be evil. Why not use different names for the Debug and Release versions? That's how we used to do it, but it turns out that the tool that converts VC++ 2008 project files to VC++ 2010 project files makes the assumption that your target file has the same name as the project, and the project has the same name in both Debug and Release mode.
When I link the GClasses library to my project, I get a bunch of linker errors saying msvcrt.lib and libcmt.lib are fighting with each other.
On Windows, the GClasses library is built with the
static runtime libraries to reduce dll-hell. If you
try to link it with your code, and your code uses the
dynamic runtime libraries, you will get linker errors.
The solution is to rebuild GClasses with dynamic
runtime libraries, or rebuild your app with static
runtime libraries. You can't mix static and dynamic
libraries on Windows. If that doesn't help, you need to be careful to
make sure that you build all of your libraries with the same settings.
To do this, open your solution in VC++. In the Solution Explorer, right-click on GClasses, then click "Properties". Check the following settings, and make sure that they match the settings for your libraries and project: Configuration Properties->General->Use of MFC, Configuration Properties->C/C++->Code Generation->Basic Runtime Checks, and Configuration Propterties->C/C++->Code Generation->Runtime Library. If those all match and you still have problems, try use a diffing program to examine everything that differs between the GClasses.vcproj file and the .vcproj files for your program.
When building for 64-bit architectures, some of the demo apps give a linker error about SDL.
We included a 32-bit version of the SDL library for Windows with Waffles for convenience, but we did not include a 64-bit version of this library. If you want to build the demos that use SDL for a 64-bit architecture, you will need to download a 64-bit version of the SDL library.
I get errors while building GSocket.cpp.
You probably have an outdated Windows SDK installed. The solution is to download and install the latest Windows SDK.
How do I install Waffles?
There is no install process for Windows. Just manually copy the executables that you use into some folder in your environment's path.
Where can I get more specific help?
You can ask a question at our forum. If you
post a question and you do not get a speedy response, please email me. Sometimes the email that is supposed
to notify me that there is a new forum post is incorrectly classified as spam and discarded. (That's ironic,
since I'm trying to develop better ML algorithms, isn't it?) My email address is on the main page.
Previous Next Back to the docs page |