On Fri, 5 Mar 2004 list<at>list<dot>dk wrote: > 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 snipped]
Thor, You have to use -mno-cygwin for the whole compilation, not just for the link line, otherwise the wrong headers get picked up. IOW, don't add "-mno-cygwin" to LDFLAGS -- instead, redefine CXX='g++ -mno-cygwin' (and CC='gcc -mno-cygwin') and rebuild everything from scratch. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ [EMAIL PROTECTED] ZZZzz /,`.-'`' -. ;-;;,_ [EMAIL PROTECTED] |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D. '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "I have since come to realize that being between your mentor and his route to the bathroom is a major career booster." -- Patrick Naughton -- 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/