From: "Bill Blough" Newsgroups: comp.os.msdos.djgpp Subject: Newbie Linker Problems Lines: 142 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2919.6700 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Message-ID: Date: Mon, 12 Mar 2001 06:38:02 GMT NNTP-Posting-Host: 209.26.240.180 X-Complaints-To: abuse AT earthlink DOT net X-Trace: newsread2.prod.itd.earthlink.net 984379082 209.26.240.180 (Sun, 11 Mar 2001 22:38:02 PST) NNTP-Posting-Date: Sun, 11 Mar 2001 22:38:02 PST Organization: EarthLink Inc. -- http://www.EarthLink.net To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I'm currently learning C++ by reading, doing end of chapter exercises, and occasionally a side project of my own. I'm getting linker errors when I try and compile a program I wrote for one of the end of chapter exercises. After hours troubleshooting my own code, I downloaded the exercise solution from the publisher's website. That code won't compile either, so I guss it's not my code. It's a Windows 98 system. I'm using a text editor for coding and doing compilation from a command prompt. LFN support is enabled. my command line is: gxx main.cpp -o main.exe After reading the FAQ, I also tried: gxx -O2 main.cpp -o main.exe The error is: ---------------------------------------------------------------------- /DJGPP/tmp\ccZ2XPu0.o(.text+0x90):main.cpp: undefined reference to `printthis(basic_string, __default_alloc_template > const &)' /DJGPP/tmp\ccZ2XPu0.o(.text+0xd4):main.cpp: undefined reference to `printthat(basic_string, __default_alloc_template > const &)' collect2: ld returned 1 exit status ---------------------------------------------------------------------- The source is: ---------------------------------------------------------------------- // print.h #ifndef PRINT_H #define PRINT_H #include using namespace std; // Function prototype void print(const string& s); #endif ---------------------------------------------------------------------- // print.cpp #include "print.h" #include #include using namespace std; void print(const string& s) { cout << s << endl; } ---------------------------------------------------------------------- // printthis.h #ifndef PRINTTHIS_H #define PRINTTHIS_H #include using namespace std; // Function prototype void printthis(const string& s); #endif ----------------------------------------------------------------------- // printthis.cpp #include "printthis.h" #include "print.h" void printthis(const string& s) { print(s); } ------------------------------------------------------------------------- // printthat.h #ifndef PRINTTHAT_H #define PRINTTHAT_H #include using namespace std; // Function prototype void printthat(const string& s); #endif ------------------------------------------------------------------------ // printthat.cpp #include "printthat.h" #include "print.h" void printthat(const string& s) { print(s); } ----------------------------------------------------------------------- // main.cpp #include "printthis.h" #include "printthat.h" int main() { printthis("This is a test string using printthis()."); printthat("This is a test string using printthat()."); return 0; } ---------------------------------------------------------------------- Any info relating to the problem, or advice on how to fix it or where to look, would be greatly appreciated. Other info/advice may be appreciated, but possibly to a lesser degree :-) Thanks in advance. Bill Blough