Now I have a working setup for my Windows 64 with Mingw, c/c++, and Allegro 5.2.2
It was the posix and seh things that was the problem. Though I have a slight clue about what they are, I really missed their importance in choosing the right compiler.
So getting Allegro 5 work on 64 bit for Windows, Code::Blocks and Mingw included the following:
Get the latest Code::Blocks from here: http://www.codeblocks.org/downloads/26
You might want to pick one with Mingw, although it will be the wrong version. But the toolchains will probably be named correctly, even though you switch later to a correct Mingw. I installed Code::Blocks to C:\CodeBlocks\.
Get the right Mingw from this page: https://sourceforge.net/projects/mingw-w64/files/
Scroll down to the sub-header MinGW-W64 GCC-6.2.0, since 6.2.0 is the version that the latest A5 binaries are built with. Pick the x86_64-posix-seh file and open the package with 7-Zip or a similar unzipper.
What I did was I dragged the folder mingw64 from the 7-Zip program window to C:\CodeBlocks\
At this point I checked that Code::Blocks worked with Mingw. In Settings->Compiler settings it should look like this:
All the program files should be found in C:\CodeBlocks\mingw64\bin, if you have to pick them at this point. If you installed Code::Blocks with Mingw, there might be an extra Mingw subdirectory in the path.
Next thing was to download the Allegro 5 stuff from here: http://download.gna.org/allegro/allegro-bin/5.2.2/
Pick the file including x64-static in the name. Since it's a .zip, it opens nicely in Windows 7 explorer. Open the include folder and drag the allegro5 folder to C:\CodeBlocks\mingw64\include\ so that allegro5 becomes a sub folder. Open the lib folder and drag all *static.a files into C:\CodeBlocks\mingw64\lib
Next download the Allegro dependencies from here: http://download.gna.org/allegro/allegro-deps/1.5.0/
Pick the file including x64 in the name. Open it like you opened the Allegro stuff. Drag all files inside the lib folder into C:\CodeBlocks\mingw64\lib. You don't need the include folder stuff, since all Allegro stuff is already compiled.
To get an Allegro5 project compiling in Code::Blocks, you now have to include all these libraries. Having your project open, go to Project->Project build options, pick Linker settings tab and add the following libraries from C:\CodeBlocks\mingw64\lib.
All *static.a files except the *debug-static.a files and the *monolith-static.a.
All the dependencies, which are:
Actually I haven't included all of these. I guess I have to include all the missing ones, if my code requires some of these.
Next set of libraries to be included in the project are in the C:\CodeBlocks\mingw64\x86_64-w64-mingw32\lib folder. There are 15 files. The list I got from this thread. Check code line 34 and further:
Finally there are two library files yet to be included:
These two I found in C:\CodeBlocks\mingw64\lib\gcc\x86_64-w64-mingw32\6.2.0
But instead of adding them to this list of link libraries, the standard way is to include them in the Other linker options (to the right) as:
Since the order of the linked libraries is important, here's a screenshot of the order. Especially vorbisfile and vorbis have their peculiar place in the list. Don't know if it's important, but that's how it's shown in every previous guide.
[to be continued...]
The search directories for the compiler and the linker have to be yet set. I have them probably correct, but I won't show them yet, because it might be a bit unorthodox solution. Also all the above might include some details that are not the right way to do it, although it works.
- All liballeg files can be replaced by the single monolith-static.a file, but I prefered having each one in the list. This will be my A5 template project file and this way I can pick away each library I don't use, to reduce the size of the final single executable file.