delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/07/09/18:55:27

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
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 <iostream.h>
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

- Raw text -


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