juanjpro wrote:I used a MinGW-builds toolchain:
http://sourceforge.net/projects/mingwbuilds/
I selected SJLJ for the exceptions, as it works better than Dwarf AFAIK. I also use posix threads because the win32 threads don't work.
Alright, I've installed it per your specs, changed the compiler, and am starting from square one. Here's what I've got so far (simplified):
- 1) Download and install Codeblocks and MinGW 4.8.0 or higher
- 2) Download Irrlicht and extract to it's own directory.
- 3) Copy-paste the Irrlicht folder into it's own folder; it will be the start of your dev environment.
- 4) Merge the SCPCBIrrlicht files in the Irrlicht folder with the Irrlicht environment.
- 5) Move "leakHunter" and the other cpp file into the Irrlicht folder in the same directory
- 6) Edit the CBP file to include leakHunter.cpp
- 7) Open the CBP file.
- Configure Codeblocks to compile using the MinGW installed earlier
- 9) Make a coffee while you build Irrlicht. Ensure the build target is the right one. It's 1:30am so I forgot which one.
- 10) Once done, organize your directories so that your main development folder contains an "Irrlicht" folder that contains the compiled version.
- 11) Move the rest of the contents of SCPCBIrrlicht into the dev environment.
- 12) Setup dependencies (more detail will be added here as it can be confusing)
- 13) Edit the SCPCBIrrlicht.cbp so that the OpenAL directory is a folder shorter
- 14) Also edit it so that there are 2 FreeType directories, one that is left the same but the other goes a folder deeper to "freetype2"
- 15) Open SCPCBIrrlicht.cbp and compile.
And this seemed to be working up until it ran the following to compile the full thing:
Code: Select all
x86_64-w64-mingw32-g++.exe -o bin\Debug\SCPCBIrrlicht.exe obj\Debug\3dworld\3dworld.o obj\Debug\3dworld\items\item18vbat\item18vbat.o obj\Debug\3dworld\items\item18vradio\item18vradio.o obj\Debug\3dworld\items\item420\item420.o obj\Debug\3dworld\items\item420s\item420s.o obj\Debug\3dworld\items\itemBat\itemBat.o obj\Debug\3dworld\items\itemCigarette\itemCigarette.o obj\Debug\3dworld\items\itemCup\itemCup.o obj\Debug\3dworld\items\itemEmptycup\itemEmptycup.o obj\Debug\3dworld\items\itemEyedrops\itemEyedrops.o obj\Debug\3dworld\items\itemFineeyedrops\itemFineeyedrops.o obj\Debug\3dworld\items\itemFinefirstaid\itemFinefirstaid.o obj\Debug\3dworld\items\itemFineradio\itemFineradio.o obj\Debug\3dworld\items\itemFinevest\itemFinevest.o obj\Debug\3dworld\items\itemFirstaid2\itemFirstaid2.o obj\Debug\3dworld\items\itemFirstaid\itemFirstaid.o obj\Debug\3dworld\items\itemGasmask3\itemGasmask3.o obj\Debug\3dworld\items\itemGasmask\itemGasmask.o obj\Debug\3dworld\items\itemHand2\itemHand2.o obj\Debug\3dworld\items\itemHand\itemHand.o obj\Debug\3dworld\items\itemHazmatsuit2\itemHazmatsuit2.o obj\Debug\3dworld\items\itemHazmatsuit3\itemHazmatsuit3.o obj\Debug\3dworld\items\itemHazmatsuit\itemHazmatsuit.o obj\Debug\3dworld\items\itemKey1\itemKey1.o obj\Debug\3dworld\items\itemKey2\itemKey2.o obj\Debug\3dworld\items\itemKey3\itemKey3.o obj\Debug\3dworld\items\itemKey4\itemKey4.o obj\Debug\3dworld\items\itemKey5\itemKey5.o obj\Debug\3dworld\items\itemKey6\itemKey6.o obj\Debug\3dworld\items\itemKillbat\itemKillbat.o obj\Debug\3dworld\items\itemMisc\itemMisc.o obj\Debug\3dworld\items\itemNav\itemNav.o obj\Debug\3dworld\items\itemPaper\itemPaper.o obj\Debug\3dworld\items\itemRadio\itemRadio.o obj\Debug\3dworld\items\items.o obj\Debug\3dworld\items\itemScp1025\itemScp1025.o obj\Debug\3dworld\items\itemScp148\itemScp148.o obj\Debug\3dworld\items\itemScp148ingot\itemScp148ingot.o obj\Debug\3dworld\items\itemScp500\itemScp500.o obj\Debug\3dworld\items\itemScp513\itemScp513.o obj\Debug\3dworld\items\itemScp714\itemScp714.o obj\Debug\3dworld\items\itemScp860\itemScp860.o obj\Debug\3dworld\items\itemSupereyedrops\itemSupereyedrops.o obj\Debug\3dworld\items\itemSupergasmask\itemSupergasmask.o obj\Debug\3dworld\items\itemVeryfinefirstaid\itemVeryfinefirstaid.o obj\Debug\3dworld\items\itemVeryfineradio\itemVeryfineradio.o obj\Debug\3dworld\items\itemVeryfinevest\itemVeryfinevest.o obj\Debug\3dworld\items\itemVest\itemVest.o obj\Debug\3dworld\mapGen.o obj\Debug\3dworld\npcs\npc.o obj\Debug\3dworld\npcs\npc096.o obj\Debug\3dworld\player.o obj\Debug\3dworld\rooms\EZ\exit1.o obj\Debug\3dworld\rooms\EZ\gateaentrance.o obj\Debug\3dworld\rooms\EZ\lockroom2.o obj\Debug\3dworld\rooms\EZ\room079.o obj\Debug\3dworld\rooms\EZ\room2cafeteria.o obj\Debug\3dworld\rooms\EZ\room2ccont.o obj\Debug\3dworld\rooms\EZ\room2cz3.o obj\Debug\3dworld\rooms\EZ\room2offices.o obj\Debug\3dworld\rooms\EZ\room2offices2.o obj\Debug\3dworld\rooms\EZ\room2offices3.o obj\Debug\3dworld\rooms\EZ\room2poffices.o obj\Debug\3dworld\rooms\EZ\room2poffices2.o obj\Debug\3dworld\rooms\EZ\room2sroom.o obj\Debug\3dworld\rooms\EZ\room2tesla.o obj\Debug\3dworld\rooms\EZ\room2toilets.o obj\Debug\3dworld\rooms\EZ\room2z3.o obj\Debug\3dworld\rooms\EZ\room3servers.o obj\Debug\3dworld\rooms\EZ\room3servers2.o obj\Debug\3dworld\rooms\EZ\room3z3.o obj\Debug\3dworld\rooms\EZ\room4z3.o obj\Debug\3dworld\rooms\EZ\room860.o obj\Debug\3dworld\rooms\HCZ\coffin.o obj\Debug\3dworld\rooms\HCZ\endroom2.o obj\Debug\3dworld\rooms\HCZ\r_008.o obj\Debug\3dworld\rooms\HCZ\room035.o obj\Debug\3dworld\rooms\HCZ\room049.o obj\Debug\3dworld\rooms\HCZ\room106.o obj\Debug\3dworld\rooms\HCZ\room2ctunnel.o obj\Debug\3dworld\rooms\HCZ\room2nuke.o obj\Debug\3dworld\rooms\HCZ\room2pipes.o obj\Debug\3dworld\rooms\HCZ\room2pit.o obj\Debug\3dworld\rooms\HCZ\room2servers.o obj\Debug\3dworld\rooms\HCZ\room2tunnel.o obj\Debug\3dworld\rooms\HCZ\room3pit.o obj\Debug\3dworld\rooms\HCZ\room3tunnel.o obj\Debug\3dworld\rooms\HCZ\room4tunnels.o obj\Debug\3dworld\rooms\HCZ\room513.o obj\Debug\3dworld\rooms\HCZ\testroom.o obj\Debug\3dworld\rooms\HCZ\tunnel.o obj\Debug\3dworld\rooms\HCZ\tunnel2.o obj\Debug\3dworld\rooms\LCZ\endroom.o obj\Debug\3dworld\rooms\LCZ\lockroom.o obj\Debug\3dworld\rooms\LCZ\r_914.o obj\Debug\3dworld\rooms\LCZ\room012.o obj\Debug\3dworld\rooms\LCZ\room2.o obj\Debug\3dworld\rooms\LCZ\room2_2.o obj\Debug\3dworld\rooms\LCZ\room2c.o obj\Debug\3dworld\rooms\LCZ\room2closets.o obj\Debug\3dworld\rooms\LCZ\room2doors.o obj\Debug\3dworld\rooms\LCZ\room2elevator.o obj\Debug\3dworld\rooms\LCZ\room2scps.o obj\Debug\3dworld\rooms\LCZ\room2storage.o obj\Debug\3dworld\rooms\LCZ\room2testroom2.o obj\Debug\3dworld\rooms\LCZ\room3.o obj\Debug\3dworld\rooms\LCZ\room3_2.o obj\Debug\3dworld\rooms\LCZ\room3storage.o obj\Debug\3dworld\rooms\LCZ\room4.o obj\Debug\3dworld\rooms\LCZ\roompj.o obj\Debug\3dworld\rooms\LCZ\start.o obj\Debug\3dworld\rooms\Misc\checkpoint1.o obj\Debug\3dworld\rooms\Misc\checkpoint2.o obj\Debug\3dworld\rooms\Misc\gatea.o obj\Debug\3dworld\rooms\Misc\pocketdimension.o obj\Debug\3dworld\rooms\Misc\r_173.o obj\Debug\3dworld\rooms\rmesh.o obj\Debug\3dworld\rooms\room.o obj\Debug\3dworld\shadercallbacks.o obj\Debug\3dworld\sharedAI.o obj\Debug\Irrlicht\CGUITTFont.o obj\Debug\Irrlicht\irrDynamics.o obj\Debug\main.o obj\Debug\sound\soundWrapper.o Irrlicht\lib\Win32-gcc\libIrrlicht.a FreeType\lib\libfreetype.dll.a Bullet\lib\libBullet.a OpenAL-Soft\libOpenAL32.dll.a oggVorbis\libogg.dll.a oggVorbis\libvorbis.dll.a oggVorbis\libvorbisfile.dll.a
All the error codes point towards a problem with OpenAL:
Code: Select all
thisbetterwork\sound\soundWrapper.cpp|23|undefined reference to `__imp_alcOpenDevice'|
sound::device = alcOpenDevice(nullptr);
Infact now I look at it, all the undefined reference errors point towards one of the dependencies; I assume bt means bullet, al is OpenAL, FT is FreeType. No mention of oggvorbis or Irrlicht issues.