Hi, I have a pure Win32 console program which I am trying to compile under Cygwin. I am including the following libraries
-lws2_32 -lrpcrt4 -luuid -lrpcns4 -lpsapi -liphlpapi and am using a host of Win32 calls for threading, sockets, semaphores, etc. I know that I need to compile with the option -mno-cygwin to be able to run the program on a computer without the cygwin.dll, which is what I want, however, when I add this option I get the following linker error: undefined reference to `___getreent' This is my linker statement: g++ -g -O2 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D WIN32 -D CYGWIN -D __CYGWIN__ CoreMain.o CoreLibrary.a -Wl,--rpath -Wl,/usr/local/lib -o CoreTest -mno-cygwin -lws2_32 -lrpcrt4 -luuid -lrpcns4 -lpsapi -liphlpapi I have found that I get this for every line in the code where I use either getchar() or printf("...\b..."); fflush(stdout); and when I comment out these the error goes away, but jumps to the next line or file where I use this or something like it. I must admit that I have not tried removing all hundreds of them, just the first 15 or so... I have tried to include all sorts of libraries instead of the cygwin.dll and actually, when I include the -lpthread it compiles, but then the program crashes when I start using threads and semaphores... As I mentioned above, when I do not state -mno-cygwin, everything works fine and the program runs perfectly! But then it needs the cygwin.dll, of course... I found a few references to this on the web, mostly promoting the compiler directive -D __CYGWIN__ which I have tried, but to no avail... Below is a snippet of output from the linker. I hope this will make sense to somebody out there, who can tell me what to include in my linker statement... Thank you very much in advance! Best regards, Thor List Linker output (with a few comments): g++ -g -O2 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D WIN32 -D CYGWIN -D __CYGWIN__ CoreMain.o CoreLibrary.a -Wl,--rpath -Wl,/usr/local/lib -o CoreTest -mno-cygwin -lws2_32 -lrpcrt4 -luuid -lrpcns4 -lpsapi -liphlpapi CoreMain.o(.text+0x1d4): In function `main': /cygdrive/d/cm/psyclone/CoreLibrary/CoreMain.cpp:259: undefined reference to `___getreent' // line 259: getchar(); CoreLibrary.a(Network.o)(.text+0x5c97): In function `_ZN7Network8unitTestEv': /cygdrive/d/cm/psyclone/CoreLibrary/Network.cpp:653: undefined reference to `___getreent' CoreLibrary.a(Network.o)(.text+0x61a7):/cygdrive/d/cm/psyclone/CoreLibrary/Network.cpp:680 : undefined reference to `___getreent' // line 680: printf(".\b"); fflush(stdout); CoreLibrary.a(Network.o)(.text+0x62a0):/cygdrive/d/cm/psyclone/CoreLibrary/Network.cpp:682 : undefined reference to `___getreent' // line 682: printf("o\b"); fflush(stdout); CoreLibrary.a(Network.o)(.text+0x62e4):/cygdrive/d/cm/psyclone/CoreLibrary/Network.cpp:684 : undefined reference to `___getreent' // line 684: printf("O\b"); fflush(stdout); CoreLibrary.a(Network.o)(.text+0x63fe):/cygdrive/d/cm/psyclone/CoreLibrary/Network.cpp:703 : more undefined references to `___getreent' follow // line 703: printf(" \b"); fflush(stdout); collect2: ld returned 1 exit status make.exe: *** [CoreTest] Error 1 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/