Compiling using GCC through MSYS...

Started by
15 comments, last by Kwizatz 16 years, 11 months ago
Weird, are you using -Werror? that means threat warnings as errors, which could be a cause.
Advertisement
Quote:Original post by Helderash
make: *** [CD3D9Driver.o] Error 1

I've checked through the entire output log, and though there are numerous warnings there aren't any errors. Would there be any reason why the g++ compiler wouldn't output the reason for a build fail?


(1) Are you building with -Werror (which treats warnings as errors)?
(2) Is it the compiler that's failing or is it another make rule that's failing?
(3) Are your sure that "stray '\32'" message is not an error? Try fixing that and recompiling.

Stephen M. Webb
Professional Free Software Developer

Removing the stray \32 from the DirectX header file did allow the compiler to move on. It's now failing when it reaches the library linking, as it doesn't like the DirectX .lib files, e.g:

c:/DX90SDK/Lib/\d3dx9.lib(obj/i386/ctransform.obj)(.text+0x3e7):..\ctransform.cpp: undefined reference to `??3@YAXPAX@Z'

I guess this is to do with MinGW disliking .lib files as you mentioned. I have tried using reimp, but it seems to fill the folder with a large number of files with numbers as names. Am I doing something incorrectly?

Thankyou all for the help with this, hopefully it's not too much further from the end.
Quote:Original post by Helderash
c:/DX90SDK/Lib/\d3dx9.lib(obj/i386/ctransform.obj)(.text+0x3e7):..\ctransform.cpp: undefined reference to `??3@YAXPAX@Z'

I guess this is to do with MinGW disliking .lib files as you mentioned. I have tried using reimp, but it seems to fill the folder with a large number of files with numbers as names. Am I doing something incorrectly?

Thankyou all for the help with this, hopefully it's not too much further from the end.


Yes, seems like your d3dx9.lib is a static library and not a reference library for a dll, sadly, reimp wont work on it, but luckily d3dx was moved from static to DLL more than a year ago, so it should work with a fairly recent release of the DX SDK, how old is yours anyway? just in case, the latest that will work on Windows 2000 is April 2005 (or was it 06?), if you have any later version of Windows, there probably is month or so old release by now (The SDK that works on Windows 2000 already moved d3dx to a dll).

Edit: Handy link for DirectX Developer downloads, latest DXSDK is April 2007, at the top
Checking through the DX releases the last one to support Windows 2000 was Decemember 2004, which I'm downloading now (I am a Windows 2000 user at the moment).

Hopefully this one will work too.. I guess I'll find out once its downloaded.
I built a new machine today, and am having to go through the whole process again. I made notes of everything I did previously, and thought it would be a simple case of following instructions. I have come across a new error however:

g++ -I../../include -Izlib -Ijpeglib -Ilibpng -I/C/Program\ Files/Microsoft\ DirectX\ 9.0\ SDK\ (December\ 2004)/Include/ -DIRRLICHT_EXPORTS=1 -MM -MF CGUISpriteBank.d CGUISpriteBank.cpp
/bin/sh.exe: -c: line 1: syntax error near unexpected token `(D'
/bin/sh.exe: -c: line 1: `g++ -I../../include -Izlib -Ijpeglib -Ilibpng -I/C/Program\ Files/Microsoft\ DirectX\ 9.0\ SDK\ (December\ 2004)/Include/ -DIRRLICHT_EXPORTS=1 -MM -MF CGUISpriteBank.d CGUISpriteBank.cpp'
make: *** [CGUISpriteBank.d] Error 2

I checked CGUISpriteBank.cpp but there appears to be nothing wrong with it.

[EDIT] The problem appears to be with sh.exe disliking backslashes. I could potentially solve the problem by moving files to locations with no filename gaps.

Thankyou very much for your help so far Kwizatz, I very much appreciate it!
Quote:Original post by Helderash
Thankyou very much for your help so far Kwizatz, I very much appreciate it!


No problem.

Actually the problem I think is that the parentheses characters require escaping just like spaces so change (December\ 2004) to \(December\ 2004\)

This topic is closed to new replies.

Advertisement