Hi, I'm trying to build a GNU/Linux application on Windows using mingw, msys, and gnuwin32. The application builds with Autoconf. It has a few dependencies that I've been able to sort out by just massaging the generated Makefiles a bit, and so I attempted to do the same for the relevant gnuwin32 portions.
I have a default install of mingw and msys in C:\mingw and c:\msys, respectively. gnuwin32 is installed in c:\gnuwin32. I added a line to msys' /etc/fstab so that gnuwin32 is mounted at /gnuwin32. I had numerous breakages before adjusting my CFLAGS to include the gnuwin32 directory, and so I know the compiler is finding them -- in fact it compiles cleanly. I'm not sure, however, that I did it 100% correctly, and I'm certain that something is not right with how I attempt to link the application: quake2world_CFLAGS = -pipe -Wall -Werror -I/gnuwin32/include/glibc -I/include -I/sdl/include quake2world_LDADD = -L/gnuwin32/lib -L/lib -L/sdl/lib -lgw32c -lmingw32 -lm -lole32 -lwsock32 -lSDLmain -lSDL And the build output towards completion: /bin/sh ../libtool --mode=link gcc -g -O2 -o quake2world.exe quake2world-cmd.o quake2world-cmodel.o quake2world-common.o quake2world-cvar.o quake2world-files.o quake2world-main.o quake2world-net_chan.o quake2world-net_udp.o quake2world-pmove.o quake2world-sv_ccmds.o quake2world-sv_ents.o quake2world-sv_game.o quake2world-sv_init.o quake2world-sv_main.o quake2world-sv_send.o quake2world-sv_user.o quake2world-sv_world.o quake2world-shared.o quake2world-cl_ents.o quake2world-cl_fx.o quake2world-cl_input.o quake2world-cl_loc.o quake2world-cl_main.o quake2world-cl_parse.o quake2world-cl_pred.o quake2world-cl_tent.o quake2world-cl_screen.o quake2world-cl_view.o quake2world-cl_console.o quake2world-cl_keys.o quake2world-gl_draw.o quake2world-gl_image.o quake2world-gl_light.o quake2world-gl_mesh.o quake2world-gl_model.o quake2world-gl_rmain.o quake2world-gl_rmisc.o quake2world-gl_rsurf.o quake2world-gl_sdl.o quake2world-gl_warp.o quake2world-pcx.o quake2world-qgl.o quake2world-tga.o quake2world-snd_main.o quake2world-snd_mix.o quake2world-snd_mem.o quake2world-snd_sdl.o -L/gnuwin32/lib -L/lib -L/sdl/lib -lgw32c -lmingw32 -lm -lole32 -lwsock32 -lSDLmain -lSDL libtool: link: warning: library `/sdl/lib/libSDL.la' was moved. libtool: link: warning: library `/sdl/lib/libSDL.la' was moved. gcc -g -O2 -o quake2world.exe quake2world-cmd.o quake2world-cmodel.o quake2world-common.o quake2world-cvar.o quake2world-files.o quake2world-main.o quake2world-net_chan.o quake2world-net_udp.o quake2world-pmove.o quake2world-sv_ccmds.o quake2world-sv_ents.o quake2world-sv_game.o quake2world-sv_init.o quake2world-sv_main.o quake2world-sv_send.o quake2world-sv_user.o quake2world-sv_world.o quake2world-shared.o quake2world-cl_ents.o quake2world-cl_fx.o quake2world-cl_input.o quake2world-cl_loc.o quake2world-cl_main.o quake2world-cl_parse.o quake2world-cl_pred.o quake2world-cl_tent.o quake2world-cl_screen.o quake2world-cl_view.o quake2world-cl_console.o quake2world-cl_keys.o quake2world-gl_draw.o quake2world-gl_image.o quake2world-gl_light.o quake2world-gl_mesh.o quake2world-gl_model.o quake2world-gl_rmain.o quake2world-gl_rmisc.o quake2world-gl_rsurf.o quake2world-gl_sdl.o quake2world-gl_warp.o quake2world-pcx.o quake2world-qgl.o quake2world-tga.o quake2world-snd_main.o quake2world-snd_mix.o quake2world-snd_mem.o quake2world-snd_sdl.o -L/gnuwin32/lib -L/lib -L/sdl/lib -lgw32c -lmingw32 -lm -lole32 -lwsock32 -lSDLmain /sdl/lib/libSDL.dll.a -luser32 -lgdi32 -lwinmm -ldxguid -Wl,--rpath -Wl,/sdl/lib -Wl,--rpath -Wl,/sdl/lib quake2world-cmodel.o(.text+0xfdd): In function `CM_InlineModel': c:/gnuwin32/include/glibc/stdlib.h:317: undefined reference to `__strtol_internal' quake2world-cvar.o(.text+0xb4): In function `Cvar_VariableValue': c:/gnuwin32/include/glibc/stdlib.h:311: undefined reference to `__strtod_internal' quake2world-cvar.o(.text+0x287): In function `Cvar_Get': c:/gnuwin32/include/glibc/stdlib.h:311: undefined reference to `__strtod_internal' quake2world-cvar.o(.text+0x40e): In function `Cvar_Set2': c:/gnuwin32/include/glibc/stdlib.h:311: undefined reference to `__strtod_internal' quake2world-cvar.o(.text+0x4a5):c:/gnuwin32/include/glibc/stdlib.h:311: undefined reference to `__strtod_internal' quake2world-cvar.o(.text+0x5c5): In function `Cvar_FullSet': c:/gnuwin32/include/glibc/stdlib.h:311: undefined reference to `__strtod_internal' quake2world-cvar.o(.text+0x6ee):c:/gnuwin32/include/glibc/stdlib.h:311: more undefined references to `__strtod_internal' follow quake2world-files.o(.text+0xcc8): In function `FS_ListFiles': C:/msys/1.0/home/jdolan/quake2world-snapshot/src/files.c:581: undefined reference to `__strdup' quake2world-main.o(.text+0x102): In function `Sys_ConsoleOutput': C:/msys/1.0/home/jdolan/quake2world-snapshot/src/main.c:100: undefined reference to `stdout' quake2world-main.o(.text+0x624): In function `Sys_Error': C:/msys/1.0/home/jdolan/quake2world-snapshot/src/main.c:299: undefined reference to `stderr' quake2world-net_udp.o(.text+0x1e5): In function `NET_StringToSockaddr': C:/msys/1.0/home/jdolan/quake2world-snapshot/src/net_udp.c:155: undefined reference to `inet_addr' quake2world-net_udp.o(.text+0x201):C:/msys/1.0/home/jdolan/quake2world-snapshot/src/net_udp.c:157: undefined reference to `gethostbyname' quake2world-net_udp.o(.text+0x22e): In function `NET_StringToSockaddr': c:/gnuwin32/include/glibc/stdlib.h:317: undefined reference to `__strtol_internal' quake2world-net_udp.o(.text+0x48d): In function `NET_GetPacket': C:/msys/1.0/home/jdolan/quake2world-snapshot/src/net_udp.c:251: undefined reference to `recvfrom' quake2world-net_udp.o(.text+0x4e0):C:/msys/1.0/home/jdolan/quake2world-snapshot/src/net_udp.c:257: undefined reference to `errno' quake2world-net_udp.o(.text+0x5e8): In function `NET_SendPacket': C:/msys/1.0/home/jdolan/quake2world-snapshot/src/net_udp.c:301: undefined reference to `sendto' quake2world-net_udp.o(.text+0x874): In function `NET_Socket': C:/msys/1.0/home/jdolan/quake2world-snapshot/src/net_udp.c:362: undefined reference to `socket' quake2world-net_udp.o(.text+0x8af):C:/msys/1.0/home/jdolan/quake2world-snapshot/src/net_udp.c:374: undefined reference to `setsockopt' quake2world-net_udp.o(.text+0x8ff):C:/msys/1.0/home/jdolan/quake2world-snapshot/src/net_udp.c:391: undefined reference to `bind' quake2world-net_udp.o(.text+0x9c7): In function `NET_ErrorString': C:/msys/1.0/home/jdolan/quake2world-snapshot/src/net_udp.c:416: undefined reference to `errno' quake2world-sv_ccmds.o(.text+0x339): In function `SV_SetPlayer': c:/gnuwin32/include/glibc/stdlib.h:317: undefined reference to `__strtol_internal' quake2world-sv_main.o(.text+0x30a): In function `SVC_Info': c:/gnuwin32/include/glibc/stdlib.h:317: undefined reference to `__strtol_internal' quake2world-sv_main.o(.text+0x785): In function `SVC_Connect': c:/gnuwin32/include/glibc/stdlib.h:317: undefined reference to `__strtol_internal' quake2world-sv_main.o(.text+0x7d5):c:/gnuwin32/include/glibc/stdlib.h:317: undefined reference to `__strtol_internal' quake2world-sv_main.o(.text+0x7f6):c:/gnuwin32/include/glibc/stdlib.h:317: undefined reference to `__strtol_internal' quake2world-sv_main.o(.text+0x1c2a):c:/gnuwin32/include/glibc/stdlib.h:317: more undefined references to `__strtol_internal' follow quake2world-cl_keys.o(.text+0x316): In function `Key_Console': c:/gnuwin32/include/glibc/ctype.h:199: undefined reference to `__ctype_toupper_loc' quake2world-cl_keys.o(.text+0x335):c:/gnuwin32/include/glibc/ctype.h:199: undefined reference to `__ctype_toupper_loc' quake2world-gl_model.o(.text+0x47a): In function `Mod_ForName': c:/gnuwin32/include/glibc/stdlib.h:317: undefined reference to `__strtol_internal' quake2world-gl_rmain.o(.text+0x16a3): In function `strlwr': C:/msys/1.0/home/jdolan/quake2world-snapshot/src/gl_rmain.c:676: undefined reference to `__ctype_tolower_loc' quake2world-snd_sdl.o(.text+0x2c8): In function `SND_Init': c:/gnuwin32/include/glibc/stdlib.h:317: undefined reference to `__strtol_internal' c:/gnuwin32/lib/libgw32c.a(readlink.o)(.text+0x79):readlink.c: undefined reference to `IID_IPersistFile' make[3]: *** [quake2world.exe] Error 1 make[3]: Leaving directory `/home/jdolan/quake2world-snapshot/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/jdolan/quake2world-snapshot/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/jdolan/quake2world-snapshot' make: *** [all] Error 2 Clearly, it's missing some very basic things. Is there a dependency for gnuwin32 that I'm missing? Do I need to copy the msvcrt.dll somewhere, and link against that? Thanks in advance, Jay ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ GnuWin32-Users mailing list GnuWin32-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gnuwin32-users