From: John B. <joh...@ho...> - 2008-03-30 01:32:53
|
Zack Morris wrote: > Ya true hmm, I just haven't worked much with configure or passing gcc > options directly. Well I have it all working from console, and am now > trying to integrate this with Xcode. I have done these steps so far to > swap mingw in for gcc, and tell Xcode what flags to pass to it: > > cd /usr/bin > sudo mv gcc gccBACKUP > sudo ln -s /usr/local/cross-tools/bin/i386-mingw32-g++ gcc > // go into project settings: > Architectures: i386 (might be $(NATIVE_ARCH) on intel) > Valid Architectures: i386 x86_64 > Header Search Paths: /Users/zmorris/Development/Windows/DXSDK/include > Library Search Paths: /usr/local/cross-tools/lib > Other Linker Flags: -mwindows -g -o -lmingw32 -lddraw > > So far it allllmost works, but I am getting: > > ld: warning in /usr/local/cross-tools/lib/libddraw.a, file is not of required architecture > "_main", referenced from: > start in crt1.10.5.o I don't know anything abiyt Xcode, but: You should create symbolic links g++ and gcc, corresponding to i386-mingw32-g++ and i386-mingw32-gcc respectively. If you are compiling C++ files, you should use g++, otherwise use gcc. gcc will work, but you must add -lstdc++ to the command line. However, that is not the problem (yet). It seems that your native ld is being called instead of the cross-compiler's ld. You should probably create your symbolic links in /usr/local/cross-tools/bin and then ensure that this directory appears before /usr/bin (or any other directory that contains gcc) in your PATH. > "_MessageBox", referenced from: > _WinMain in main.o > ld: symbol(s) not found > collect2: ld returned 1 exit status MessageBox is found in -luser32, which is part of w32api. I assume that w32api is installed. You can search the MSDN Library to find out which header and library files are needed for any Win32 API function. > > I am still not absolutely certain that Xcode is using mingw. The -mwindows flag > should skip the need for main(), and I believe -lmingw32 should provide > MessageBox(). I am still missing something, but this whole process seems to > still be evolving, with several forums on the web offering different suggestions. > The -o flag does not belong in 'Other Linker Flags'. I don't think that it is necessary to explicitly link to -lmingw32, and it may even be the problem. > FYI, I understand this is a potentially painful path I am on, but I want to > understand what is happening at a low level. I also have MS Visual C++ > Express in parallels and am building a project in parallel on both sides. > It's just quicker for me to work in my native environment is all, and then > debug in the visual c++ IDE when I need to. > > Thanx, > > --Zack > _________________________________________________________________ Windows Live Hotmail is giving away Zunes. http://www.windowslive-hotmail.com/ZuneADay/?locale=en-US&ocid=TXT_TAGLM_Mobile_Zune_V3 |