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:
> 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]


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.
      |\      _,,,---,,_                [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/

Reply via email to