Hi Guys,
I am just trying my hand at the MinGW compiler, to eventually try making my applications work cross platform.
I am just trying to convert one of my medium size projects so it will compile. I have managed to sucessfully convert the required lib's using reimp.
But now I am having an issue with the linker.
C:\Users\Jason\Desktop\MinDX>g++ main.cpp -o MinDX.exe -static-libgcc -static-li
bstdc++ -s
main.cpp: In function 'int WinMain(HINSTANCE, HINSTANCE, LPSTR, int)':
main.cpp:36:72: warning: passing NULL to non-pointer argument 4 of 'int MessageB
oxA(HWND, LPCSTR, LPCSTR, UINT)' [-Wconversion-null]
MessageBox(NULL,"Unable to create render window.","Fatal Error!",NULL);
^
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x49): undefined re
ference to `Renderer::createWindow(int, int, bool, bool)'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x8e): undefined re
ference to `Renderer::getDevice()'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x9d): undefined re
ference to `D3DXCreateLine@8'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x15a): undefined r
eference to `Renderer::spriteCreate(std::string)'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x1ae): undefined r
eference to `Renderer::spriteSetX(float, std::string)'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x202): undefined r
eference to `Renderer::spriteSetY(float, std::string)'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x255): undefined r
eference to `Renderer::spriteSetSizeX(int, std::string)'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x2a8): undefined r
eference to `Renderer::spriteSetSizeY(int, std::string)'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x2fb): undefined r
eference to `Renderer::spriteSetDepth(int, std::string)'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x331): undefined r
eference to `Renderer::showWindow(bool)'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x3c2): undefined r
eference to `Renderer::counterUpdate()'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x3cc): undefined r
eference to `Renderer::renderStart()'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x3d6): undefined r
eference to `Renderer::renderSpriteQueue()'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x3e0): undefined r
eference to `Renderer::framerateGetReal()'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x4b7): undefined r
eference to `Renderer::renderDebugText(int, int, std::string)'
C:\Users\Jason\AppData\Local\Temp\ccpvSbJs.o:main.cpp:(.text+0x4d8): undefined r
eference to `Renderer::renderEnd()'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\J
ason\AppData\Local\Temp\ccpvSbJs.o: bad reloc address 0xf in section `.text$_ZN6
SpriteC1Ev[__ZN6SpriteC1Ev]'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link
failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
From what I can tell the compiler can't find my engine.cpp file (my engine.h file references the above functions).
engine.h & engine.cpp are located in the same folder and I know the compiler can see engine.h (called from main.cpp) as this is where I had to fix up my header files.
I am a long time user of MSVC++ and first time user of MinGW 4.6 (or any version for that matter). So, I am probably missing something simple.
Any help would be greatly appreciated.