gcc compilation [C] - Programmation
Marsh Posté le 27-03-2002 à 16:56:47
est-ce que dans ton fonctions.c, tu as à la fois des prototypes et des définitions de fonctions, cad:
int fonction1(param...);
et plus loin:
int fonction1(param...) {
...
}
Marsh Posté le 27-03-2002 à 17:00:21
Ben non en fait je n'ai que la fonction en elle même j'ai pas le prototype.
CHaiCA
Marsh Posté le 27-03-2002 à 17:02:52
je ne suis pas sur de la cause de ton pb, mais un #include de .c me choque
tu devrais creer un fonctions.h avec tous les prototypes de fonctions.c et faire un #include de fonctions.h dans les 2 .c
c'est clair ?
Marsh Posté le 27-03-2002 à 17:06:05
Question : j'ai mes fonctions dans fonctions.h mais je n'ai pas déclaré de prototype nulle part. Dois je le faire dans main.c
CHaICA
ps : jupiler uais je comptais le faire plus tard.
[jfdsdjhfuetppo]--Message édité par chaica--[/jfdsdjhfuetppo]
Marsh Posté le 27-03-2002 à 17:09:14
il faut mettre dans fonctions.h les prototypes des fonctions définies dans fonctions.c
et dans les 2 .c mettre #include fonctions.h
Marsh Posté le 27-03-2002 à 17:09:44
Oui c'est normal ton problème ....
si tu inclus fonction.c dans main.c , il ne faut pas compiler fonction.c à part....
c'est à dire qu'il faut simplement faire : gcc main.c -o truc
sinon il compile deux fois les memes fonctions et forcément à l'edition des liens il merde.
[jfdsdjhfuetppo]--Message édité par mokett--[/jfdsdjhfuetppo]
Marsh Posté le 27-03-2002 à 17:15:32
mokett a écrit a écrit : Oui c'est normal ton problème .... si tu inclus fonction.c dans main.c , il ne faut pas compiler fonction.c à part.... c'est à dire qu'il faut simplement faire : gcc main.c -o truc sinon il compile deux fois les memes fonctions et forcément à l'edition des liens il merde. |
je suis d'accord
Marsh Posté le 27-03-2002 à 17:22:49
Jupiler : bon j'ai crée mon fonctions.h avec mes prototypes et c'est passé tout de suite merci.
Mokette : merci aussi je note !
CHaiCA
Marsh Posté le 27-03-2002 à 16:51:27
Salut j'ai un petit programme sous linux que je veux compiler.
Il tient sur deux fichiers : main.c et fonctions.c
Donc dans mon main.c j'ai fait un #include "fonctions.c"
Je précise que sous borland (sous win) ca passe.
Donc je lance la commande gcc main.c fonctions.c -o truc et là il me sort des erreurs bizarres dans ce genre :
/tmp/ccoppE6a.o: In function `saisie':
/tmp/ccoppE6a.o(.text+0x0): multiple definition of `saisie'
/tmp/ccPqRkUi.o(.text+0x0): first defined here
/tmp/ccoppE6a.o: In function `ad_source':
/tmp/ccoppE6a.o(.text+0xb4): multiple definition of `ad_source'
/tmp/ccPqRkUi.o(.text+0xb4): first defined here
/tmp/ccoppE6a.o: In function `ad_dest':
/tmp/ccoppE6a.o(.text+0xe4): multiple definition of `ad_dest'
/tmp/ccPqRkUi.o(.text+0xe4): first defined here
collect2: ld returned 1 exit status
Une idée ?
CHaiCA
[jfdsdjhfuetppo]--Message édité par chaica--[/jfdsdjhfuetppo]