delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/03/05/05:28:47

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-Id: <200403051028.i25ASVgr007553@grassmarket.ucs.ed.ac.uk>
From: <list AT list DOT dk>
To: <cygwin AT cygwin DOT com>
Subject: 1.5.7 undefined reference to getreent when using mno-cygwin
Date: Fri, 5 Mar 2004 10:28:31 -0000
MIME-Version: 1.0

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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019