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/

Reply via email to