From: ryot AT bigfoot DOT com (George Ryot) Newsgroups: comp.os.msdos.djgpp Subject: Implicit make rules fail to link with std C++ library Message-ID: <37897534.8132755@news.clara.net> X-Newsreader: Forte Agent 1.5/32.452 X-No-Archive: yes MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 48 Date: Fri, 09 Jul 1999 22:20:20 GMT NNTP-Posting-Host: 195.8.91.168 X-Complaints-To: abuse AT clara DOT net X-Trace: nnrp4.clara.net 931558820 195.8.91.168 (Fri, 09 Jul 1999 23:20:20 BST) NNTP-Posting-Date: Fri, 09 Jul 1999 23:20:20 BST To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I'm trying to set up a simple makefile to build C++ programs. The following line compiles and links without error: C:\C\test>gxx -O -Wall -Werror -o hello.exe hello.cpp But when I run make I get: C:\C\test>make gcc hello.cpp -o hello c:/djgpp/tmp\ccci43cl(.text+0x19):hello.cpp: undefined reference to `cout' c:/djgpp/tmp\ccci43cl(.text+0x1e):hello.cpp: undefined reference to `ostream::op erator<<(char const *)' make.exe: *** [hello] Error 1 The link phase seems to be failing to link with the standard C++ library. Also my CFLAGS are not being picked up. Here are the test files I am using: /*---- hello.cpp ----*/ #include int main(void) { cout << "Hello World!\n"; return(0); } # ---- makefile ---- TARGETS = hello CFLAGS = -O -Wall -Werror all: $(TARGETS) clean: @for %x in ($(TARGETS)) do rm -f %x %x.o %x.exe Adding the line "CXX = gxx" solves the linking problem, and changing CFLAGS to CPPFLAGS solves the other but neither of these seem to me to be the best answer. Building C++ programs with make should be as straight forward as with C programs, did I miss something in the FAQ or could my installation be at fault. Any debugging of the files above or pointers to documentation gratefully received. -- george