Aldo Nogueira wrote:
>a.o: In function `main':
>a.o(.text+0x7): undefined reference to `funcao'
>collect2: ld returned 1 exit status

O s�mbolo 'funcao' n�o existe mesmo. Verifique seu c�digo de novo e ver� que 
voc� n�o o declarou. No seu b.cpp, a fun��o define o s�mbolo 'funcao(void)', 
que n�o � a mesma coisa!

>Essa eh a maneira correta? Um codigo em C sempre pode ser compilado como
>C++?

N�o. Mesmo porque voc� compilou c�digo C com o g++ -- voc� n�o compilou c�digo 
C como C++. Existe uma diferen�a a�.

>Existe 'extern "C"' pro caso de C++ chamando codigo compilado no estilo C,
>mas 'extern "C++"' nao existe em C.

Faltou justamente o 'extern "C"' no seu c�digo:

/*** b.hpp ***/
extern "C" void funcao();
/*** eof ***/

agora deve funcionar.

-- 
  Thiago Macieira - UFOT Registry number: 1001
 [EMAIL PROTECTED]
   ICQ UIN: 1967141  PGP/GPG: 0x6EF45358
     Registered Linux user #65028

Attachment: msg78195/pgp00000.pgp
Description: signature

Responder a