Probably you'll need to compile with " I/gnuwin32/include/glibc " as the last include option, or even better use " -idirafter /gnuwin32/include/glibc "
Kees Zeelenberg ----- Original Message ----- From: "Jay Dolan" <[EMAIL PROTECTED]> To: <gnuwin32-users@lists.sourceforge.net> Sent: Sunday, February 25, 2007 11:50 PM Subject: [GnuWin32-Users] Compiling and linking with MinGW and MSYS(undefined symbols) > 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 > > > ------------------------------------------------------------------------- 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