From: Pieter T. <pie...@in...> - 2007-12-14 09:46:58
|
kev c wrote: > How do you do this. Sorry for the dumb question. I > couldnt really find any documentation. I would like to > try building some programs on linux for windows. > > Kev > > > Well as mentioned there are some scripts on the mingw site. I've recently built a i686-pc-mingw32 cross compiler on Debian Etch (AMD64) from FSF gcc sources (4.2.2) The FSF sources may not contain some win32-specific patches that are found in the mingw-site gcc sources; cehck this list's archives for discussions on this. Very short summary: (ask me if you need more details) What I did was: grab binutils-2.18 and gcc-4.2.2 from ftp.gnu.org, and grab w32api and mingw-runtime sources from mingw site. Native compiler is gcc 4.1.2. 1. build cross binutils and install in $prefix 2. add cross-binutils bin directory to $PATH 3. copy w32api and mingw-runtime headers into $prefix/$target/include ($target being i686-pc-mingw32 in my case) 4. build C-only cross-gcc and install in $prefix 5. compile w32api then mingw-runtime using compiler created in 4, install in $prefix/$target 6. compile cross-gcc (I used --enable-sjlj-exceptions --enable-threads --enable-languages=c,c++) I have used this compiler to cross-compile gtk 2.12.3 and its dependencies, and I have successfully run the resulting gtkdemo.exe on my windows machine All in all, it really depends what languages you need to support. C and C++ should work like described above. For Fortran, you need MPFR and GMP libraries. You can cross-compile these, but they may also be needed on your build platform (Debian Etch versiopns are not recent enough) so I had no luck there. For Ada: at some stage I got an error in some gnatmake command which was including both the ada includes on the build system (/usr/...) and Ada includes from the gcc source tree. After "fixing" (?) this, I got myself another error though. The FSF GCC manual states that to compile GNAT, it's best to start with a native compiler. So I attempted to build native gcc (with ada support) 4.2.2 on my Debian system, but probably bootstrapped it the wrong way. So building my native compiler failed, and I gave up on my attempt to build a i686-pc-mingw32 gnat cross compiler after that. Java: you should probably build without AWT (i.e. --enable-libgcj --disable-java-awt), but I haven't tested this so far. Pieter |