From: JustIn Newsgroups: comp.os.msdos.djgpp Subject: C++ undefined references in libgpp.a to '__dj_blah' using 'cout' ? Date: Mon, 31 Mar 1997 15:03:31 -0500 Organization: lucid designs Lines: 128 Message-ID: <33401893.3C09@geocities.com> Reply-To: seismic AT geocities DOT com NNTP-Posting-Host: 170-145-127.ipt.aol.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp I'm using RSXNTDJ for Win32. I have a simple C++ file (compacted): #include void main(int argc, char **argv) { // ------------THE FOLLOWING LINE CAUSES _ALL_ THE LINKING ERRORS BELOW! cout << "Pausing..." << endl; } Here's my dumb Makefile (hints desired): ------------------------------------------- CC = gxx -Zwin32 CFLAGS = -Wall -O3 -m486 OPT = rsxntopt RM = rm -f .cc.o : $(CC) -c $(CFLAGS) $< prog.exe : prog.o $(CC) $(CFLAGS) -o prog.tmp prog.o $(OPT) -b prog.exe -c -V $(RM) prog.tmp ------------------------------------------ Here's the output: gxx -v -Zwin32 -c -O3 -m486 prog.cc Reading specs from e:/dj/rsxntdj/lib\specs gcc version 2.7.2.1 e:\dj/bin\cpp.exe -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Dunix -Di386 -DGO32 -DMSDOS -DDJGPP=2 -DDJGPP_MINOR=0 -D__unix__ -D__i386__ -D__GO32__ -D__MSDOS__ -D__DJGPP__=2 -D__DJGPP_MINOR__=0 -D__unix -D__i386 -D__GO32 -D__MSDOS -D__DJGPP=2 -D__DJGPP_MINOR=0 -D__OPTIMIZE__ -D__WIN32__ -D__EMX__ -Ie:/dj/rsxntdj/include -Ie:/dj/rsxntdj/include/win32 prog.cc c:\windows\temp\ccbaaaaa GNU CPP version 2.7.2.1 (80386, BSD syntax) #include "..." search starts here: #include <...> search starts here: e:/dj/rsxntdj/include e:/dj/rsxntdj/include/win32 e:\dj/lang/cxx e:\dj/include e:\dj/contrib/grx20/include /usr/local/lib/g++-include /usr/local/include /usr/local/go32/include /usr/local/lib/gcc-lib/go32/2.7.2.1/include /usr/include End of search list. e:\dj/bin\cc1plus.exe c:\windows\temp\ccbaaaaa -fno-strength-reduce -fno-strength-reduce -quiet -dumpbase prog.cc -m486 -O3 -version -o c:\windows\temp\cccaaaaa GNU C++ version 2.7.2.1 (80386, BSD syntax) compiled by GNU C version 2.7.2.1. e:\dj/bin\as.exe -o prog.o c:\windows\temp\cccaaaaa gcc.exe: -lgpp: linker input file unused since linking not done gcc.exe: -lstdcx: linker input file unused since linking not done gcc.exe: -lm: linker input file unused since linking not done gxx -v -Zwin32 -O3 -m486 -o prog.tmp prog.o Reading specs from e:/dj/rsxntdj/lib\specs gcc version 2.7.2.1 e:\dj/bin\ld.exe -Le:/dj/rsxntdj/lib/all -o prog.tmp e:/dj/rsxntdj/lib\crt0win. o -Le:/dj/rsxntdj/lib\st -Le:/dj/rsxntdj/lib -Le:\dj/lib prog.o -lgpp -lstdcx -l m -Trsxnt.lnk -lalias -lgcc -lmain -lstati -lc -lc_app -lc -lgcc -lemx -lemx2 -l krn32 -lusr32 -lgdi32 e:\dj/lib/libgpp.a(iostream.o)(.text+0xa67):iostream.cc: undefined reference to `__dj_ctype_flags' e:\dj/lib/libgpp.a(iostream.o)(.text+0xe2b):iostream.cc: undefined reference to `__dj_ctype_flags' e:\dj/lib/libgpp.a(iostream.o)(.text+0xf08):iostream.cc: undefined reference to `__dj_ctype_flags' e:\dj/lib/libgpp.a(iostream.o)(.text+0xf50):iostream.cc: undefined reference to `__dj_ctype_flags' e:\dj/lib/libgpp.a(iostream.o)(.text+0xf92):iostream.cc: undefined reference to `__dj_ctype_flags' e:\dj/lib/libgpp.a(iostream.o)(.text+0x1ecf):iostream.cc: more undefined references to '__dj_ctype_flags' follow e:\dj/lib/libgpp.a(iostream.o)(.text+0x2052):iostream.cc: undefined reference to `__dj_stdout' e:\dj/lib/libgpp.a(iostream.o)(.text+0x205c):iostream.cc: undefined reference to `__dj_stderr' e:\dj/lib/libgpp.a(stdstrbu.o)(.data+0x130):stdstrbufs.cc: undefined reference to `__dj_stdin' e:\dj/lib/libgpp.a(stdstrbu.o)(.data+0x180):stdstrbufs.cc: undefined reference to `__dj_stdout' e:\dj/lib/libgpp.a(stdstrbu.o)(.data+0x1d0):stdstrbufs.cc: undefined reference to `__dj_stderr' e:\dj/lib/libgpp.a(stdiostr.o)(.text+0x323):stdiostream.cc: undefined reference to `fileno' e:\dj/lib/libgpp.a(stdiostr.o)(.text+0x398):stdiostream.cc: undefined reference to `getc' e:\dj/lib/libgpp.a(floatcon.o)(.text+0x1757):floatconv.c: undefined reference to `__dj_huge_val' e:\dj/lib/libgpp.a(iovfscan.o)(.text+0x63):iovfscanf.c: undefined reference to `__dj_ctype_flags' e:\dj/lib/libgpp.a(iovfscan.o)(.text+0x98):iovfscanf.c: undefined reference to `__dj_ctype_flags' e:\dj/lib/libgpp.a(iovfscan.o)(.text+0x4d6):iovfscanf.c: undefined reference to `__dj_ctype_flags' e:\dj/lib/libgpp.a(iovfscan.o)(.text+0x54c):iovfscanf.c: undefined reference to `__dj_ctype_flags' e:\dj/lib/libgpp.a(iovfscan.o)(.text+0x5c5):iovfscanf.c: undefined reference to `__dj_ctype_flags' e:\dj/lib/libgpp.a(iovfscan.o)(.text+0x816):iovfscanf.c: more undefined references to `__dj_ctype_flags' follow make.exe: *** [prog.exe] Error 1 ------------------------------------------ Again, it compiles without the 'cout' line, but not with it. *sigh* I don't know enough about command-line compiling yet, and I'm probably doing something silly, maybe in the Makefile. I've checked the installations many times over, used DJVERIFY 0.33a, and compiled other C/++ programs fine. Thanks a lot for any help! -- seismic AT geocities DOT com Lucidia: http://www.geocities.com/TimesSquare/Alley/4842/index.html