Hello everyone,
Sorry to keep spamming this list with my lack of cross-compiling
experience… I’m building a FAQ with all of this info as I go, so it
should keep this off of the list in the future!
I have a working cross-compiler, but my program also need the demos:
IMGlib, SDLnet, and ttflib
Unfortunately, they don’t seem to be setup to configure smoothly under the
provided cross-compiler + sdl.
I am starting with IMGlib:
I downloaded the following files from the Xmingw32/SDL page:
libpng-1.0.3-i686-pc-mingw32.tar.gz,
zlib-1.1.3-i686-pc-mingw32.tar.gz
I put the .h’s in /usr/local/cross-tools/i386-mingw32/include
and the .a’s in /usr/local/cross-tools/i386-mingw32/lib
The following points fail in configure for IMGlib:
- Fails to find: “libpng” and "libz"
20 Fails to determine host
(this is fixed by giving --host=i586-pc-linux-gnu to configure)–
So looking at configure, I found that for PNG it just adds -DLOAD_PNG to
CFLAGS, and -lz -lpng to LIBS. So I manually added them to the
configure generated makefile.
I then did a make, make install, and it compiled with the i386-mingw32
compiler just fine and installed these files:
Into lib:
libIMG.a
libIMG.la
And into include:
IMG.h
Note, running ‘file’ on any of the ".o’s results in:
IMG.o: 80386 COFF executable not stripped - version 30821
Running ‘file’ on Sam’s provided SDL.dll results in:
SDL.dll: MS Windows PE 32-bit Intel 80386 GUI DLL
Is this a normal difference? I expected to see Windows somewhere in the
file output for the cross-compiled IMG.o.
This should be enough to link my program against IMGlib,
but I’d still need a “.dll” to place with my program on the windows
side to run it.
If someone can explain how to create the .dll or point me to the right
FAQ, I’d appreciate it. I thought this would be similar to creating a
".so", but unfortunately it doesn’t seem to work with the cross-compiler:
gcc -shared *.lo -o IMG.dll
gcc: unrecognized option `-shared’
/usr/local/cross-tools/lib/gcc-lib/i386-mingw32/2.95.2/…/…/…/…/i386-mingw32/bin/ld:IMG.lo:
file format not recognized; treating as linker script
/usr/local/cross-tools/lib/gcc-lib/i386-mingw32/2.95.2/…/…/…/…/i386-mingw32/bin/ld:IMG.lo:2:
parse error
Can this be done under linux/mingw32?
Brian Hayward