www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/05/05/11:25:20

From: Thomas Demmer <demmer AT lstm DOT ruhr-uni-bochum DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: HELP: Linker hates me!
Date: Tue, 05 May 1998 08:57:15 +0200
Organization: Lehrstuhl fuer Stroemungsmechanik
Lines: 39
Message-ID: <354EB84B.C911FF38@LSTM.Ruhr-UNI-Bochum.De>
References: <354E35F1 DOT 4EE71278 AT sprynet DOT com> <6ilcql$8e3$1 AT news DOT luth DOT se>
NNTP-Posting-Host: bvb.lstm.ruhr-uni-bochum.de
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Martin Str|mberg wrote:
[...]
> 
> Well  I don't have any problems with that code:
> descartes:/tmp> gcc -Wall main.cc stuff.cc
> main.cc:3: warning: return type for `main' changed to integer type
> 
> However this is more interresting:
> descartes:/tmp> gcc -Wall main.cc stuff.c
> main.cc:3: warning: return type for `main' changed to integer type
> /tmp/cca125441.o: In function `main':
> /tmp/cca125441.o(.text+0x8): undefined reference to `foo(void)'

Well, C++ does name mangling, so 
int foo(void);
is turned into something like
_foo_iv
by the C++ compiler to enable type safe linking. 

The C compiler just turns this into _foo. To make your second example
work replace the prototype in main by
extern "C" {
   int foo(void);
}

-- 
Ciao
Tom

*************************************************************
* Thomas Demmer                                             *
* Lehrstuhl fuer Stroemungsmechanik                         *
* Ruhr-Uni-Bochum                                           *
* Universitaetsstr. 150                                     *
* D-44780  Bochum                                           *
* Tel: +49 234 700 6434                                     *
* Fax: +49 234 709 4162                                     *
* http://www.lstm.ruhr-uni-bochum.de/~demmer                *
*************************************************************

- Raw text -


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