C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Link entre C++ et C

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Seb
Guest





PostPosted: Wed Jan 07, 2004 1:21 pm    Post subject: Link entre C++ et C Reply with quote



Bonjour,

J'ai dans mon code C++ :

extern "C" void MaFonction(int, int);

Dans un fichier ".c" j'ai le code de cette fonction. Dans mon makefile, les
deux sources sont compilés. Au moment de l'édition de lien j'ai ceci

undefined reference to 'MaFonction'

Normalement c'est la méthode pour utiliser du C dans du C++, je ne comprend
vraiment pas ce qu'il se passe. Auriez vous une idée.

PS : j'ai essayé au moment de l'édition de lien de changer l'ordre de mes .o
sans succès, et je compile mon fichier .c avec mon compilateur C++

Sebastien


Back to top
Frédéric Gourul
Guest





PostPosted: Wed Jan 07, 2004 1:41 pm    Post subject: Re: Link entre C++ et C Reply with quote



"Seb" <nospam (AT) yahoo (DOT) net> a écrit dans le message de
news:bth14v$oen$1 (AT) s1 (DOT) read.news.oleane.net...


Quote:
Normalement c'est la méthode pour utiliser du C dans du C++, je ne
comprend
vraiment pas ce qu'il se passe. Auriez vous une idée.

c'est exact, mais je crois que les accolades sont obligatoires, je n'ai
jamais essayé de les omettres, mais je pense que le problème doit venir de
là...

extern "C" {
void MaFonction(int, int);
}



Back to top
Jean-Marc Bourguet
Guest





PostPosted: Wed Jan 07, 2004 1:45 pm    Post subject: Re: Link entre C++ et C Reply with quote



"Seb" <nospam (AT) yahoo (DOT) net> writes:

Quote:
Bonjour,

J'ai dans mon code C++ :

extern "C" void MaFonction(int, int);

Dans un fichier ".c" j'ai le code de cette fonction. Dans mon makefile, les
deux sources sont compilés. Au moment de l'édition de lien j'ai ceci

undefined reference to 'MaFonction'

Normalement c'est la méthode pour utiliser du C dans du C++, je ne comprend
vraiment pas ce qu'il se passe. Auriez vous une idée.

PS : j'ai essayé au moment de l'édition de lien de changer l'ordre de mes .o
sans succès, et je compile mon fichier .c avec mon compilateur C++

Es-tu sur qu'il te compile ton fichier .c comme etant du C et non du
C++. Sinon il ne faut pas le extern "C".

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Back to top
Seb
Guest





PostPosted: Wed Jan 07, 2004 1:47 pm    Post subject: Re: Link entre C++ et C Reply with quote

"Frédéric Gourul" <fgourul.nospam (AT) 9online (DOT) fr> a écrit dans le message
news: bth2b6$i6c$1 (AT) aphrodite (DOT) grec.isp.9tel.net
Quote:
"Seb" <nospam (AT) yahoo (DOT) net> a écrit dans le message de
news:bth14v$oen$1 (AT) s1 (DOT) read.news.oleane.net...


Normalement c'est la méthode pour utiliser du C dans du C++, je ne
comprend vraiment pas ce qu'il se passe. Auriez vous une idée.

c'est exact, mais je crois que les accolades sont obligatoires, je
n'ai jamais essayé de les omettres, mais je pense que le problème
doit venir de là...

extern "C" {
void MaFonction(int, int);
}

Je ne pense pas, Le "Stroustrup a un exemple sans les accolades en extern
"C".

J'ai quand meme essayé et le résultat est le meme : ça ne fonctionne pas.





Back to top
Seb
Guest





PostPosted: Wed Jan 07, 2004 1:49 pm    Post subject: Re: Link entre C++ et C Reply with quote

"Jean-Marc Bourguet" <jm (AT) bourguet (DOT) org> a écrit dans le message news:
[email]pxbvfnnq3cc.fsf (AT) news (DOT) bourguet.org[/email]
Quote:
"Seb" <nospam (AT) yahoo (DOT) net> writes:

Bonjour,

J'ai dans mon code C++ :

extern "C" void MaFonction(int, int);

Dans un fichier ".c" j'ai le code de cette fonction. Dans mon
makefile, les deux sources sont compilés. Au moment de l'édition de
lien j'ai ceci

undefined reference to 'MaFonction'

Normalement c'est la méthode pour utiliser du C dans du C++, je ne
comprend vraiment pas ce qu'il se passe. Auriez vous une idée.

PS : j'ai essayé au moment de l'édition de lien de changer l'ordre
de mes .o sans succès, et je compile mon fichier .c avec mon
compilateur C++

Es-tu sur qu'il te compile ton fichier .c comme etant du C et non du
C++. Sinon il ne faut pas le extern "C".

A+

J'y ai pensé et j'ai changé le extern "C" en

extern void MaFonction( ...

et

void MaFonction


Et rien n'y fait.



Back to top
Frédéric Gourul
Guest





PostPosted: Wed Jan 07, 2004 2:03 pm    Post subject: Re: Link entre C++ et C Reply with quote


"Seb" <nospam (AT) yahoo (DOT) net> a écrit dans le message de
news:bth2lg$p9c$1 (AT) s1 (DOT) read.news.oleane.net...
Quote:
Je ne pense pas, Le "Stroustrup a un exemple sans les accolades en extern
"C".

J'ai quand meme essayé et le résultat est le meme : ça ne fonctionne pas.

Tu as raison, j'ai dit une connerie. Alors le problème vient peut-être de
ton makefile. Montre la compilation des deux sources et l'édition de lien
pour voir. Il manque peut-être un simple "" à la fin d'une ligne... (ca
m'est arrivé plusieurs fois...)

A+



Back to top
Seb
Guest





PostPosted: Wed Jan 07, 2004 2:14 pm    Post subject: Re: Link entre C++ et C Reply with quote

"Seb" <nospam (AT) yahoo (DOT) net> a écrit dans le message news:
bth2q5$pf6$1 (AT) s1 (DOT) read.news.oleane.net
Quote:
"Jean-Marc Bourguet" <jm (AT) bourguet (DOT) org> a écrit dans le message news:
[email]pxbvfnnq3cc.fsf (AT) news (DOT) bourguet.org[/email]
"Seb" <nospam (AT) yahoo (DOT) net> writes:

Bonjour,

J'ai dans mon code C++ :

extern "C" void MaFonction(int, int);

Dans un fichier ".c" j'ai le code de cette fonction. Dans mon
makefile, les deux sources sont compilés. Au moment de l'édition de
lien j'ai ceci

undefined reference to 'MaFonction'

Normalement c'est la méthode pour utiliser du C dans du C++, je ne
comprend vraiment pas ce qu'il se passe. Auriez vous une idée.

PS : j'ai essayé au moment de l'édition de lien de changer l'ordre
de mes .o sans succès, et je compile mon fichier .c avec mon
compilateur C++

Es-tu sur qu'il te compile ton fichier .c comme etant du C et non du
C++. Sinon il ne faut pas le extern "C".

A+

J'y ai pensé et j'ai changé le extern "C" en

extern void MaFonction( ...

et

void MaFonction


Et rien n'y fait.


Je viens de faire un petit test et effectivement ça ne fonctionne pas si je
compile tout avec g++. Mon erreur est là

Sébastien



Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.