[C]Problème avec la compilation gcc
6ril
-
6ril -
6ril -
Bonjour,
Je n'ai jamais fait de C et je dois intégrer un logiciel codé en C.
J'ai réussi à compiler les sources n'utilisant que des
#include <string.h>
#include <stdio.h>
Ensuite, je suis passé à ceux contenant des #include "mon_fichier.h"
Or à ce moment là, j'obtiens un message d'erreur:
Remarque: Le nom du fichier .o fourni dans le message d'erreur change à chaque lancement de demande de compilation
Après recherche sur internet, les forums... j'ai cru comprendre que la 2ème partie du message d'erreur venait d'un problème de lien, ce qui semble vérifié par le fait que lorsque que je compile avec "gcc -c ...", tout ce passe bien.
J'ai même essayer "gcc -Xlinker ld...", et dans ce cas j'obitiens:
Or, si je vais dans /usr/bin, j'ai bien un fichier "ld"
J'utilisais la version gcc 4.0.0 (Mac OS X 10.4), puis suis passé à la version 4.0.1(Mac OS X 10.5) et j'ai même testé avec la version 4.2.1 (Mac OS X 10.6) mais toujours le même problème.
Pour terminer, le code source a pu être compiler sans problème sous Windows et Linux par la personne me passant ce code. J'ai d'ailleurs pu utiliser sans problème l'exécutable Windows avec un emulateur
Je vous suis d'avance très reconnaissant de votre aide car je suis complètement perdu et ceux qui ont essayé de m'aider dans mon entourage aussi ...
Je n'ai jamais fait de C et je dois intégrer un logiciel codé en C.
J'ai réussi à compiler les sources n'utilisant que des
#include <string.h>
#include <stdio.h>
Ensuite, je suis passé à ceux contenant des #include "mon_fichier.h"
Or à ce moment là, j'obtiens un message d'erreur:
$ gcc mon_fichier.c [mon_fichier.h mon_fichier2.h] -o ./mon_fichier mon_fichier.c: In function `get_options': mon_fichier.c:354: warning: return makes pointer from integer without a cast Undefined symbols: "_free_combi", referenced from: _main in cczzCtBt.o "_print_message", referenced from: _print_message$non_lazy_ptr in cczzCtBt.o "_launch_combinhaplo", referenced from: _main in cczzCtBt.o "_get_check_number", referenced from: _get_options in cczzCtBt.o "_free_combinhaplo_args", referenced from: _alloc_init_options in cczzCtBt.o _get_options in cczzCtBt.o _get_options in cczzCtBt.o _get_options in cczzCtBt.o _check_options in cczzCtBt.o _main in cczzCtBt.o "_new_combi", referenced from: _main in cczzCtBt.o "_new_combinhaplo_args", referenced from: _main in cczzCtBt.o ld: symbol(s) not found collect2: ld returned 1 exit status
Remarque: Le nom du fichier .o fourni dans le message d'erreur change à chaque lancement de demande de compilation
Après recherche sur internet, les forums... j'ai cru comprendre que la 2ème partie du message d'erreur venait d'un problème de lien, ce qui semble vérifié par le fait que lorsque que je compile avec "gcc -c ...", tout ce passe bien.
J'ai même essayer "gcc -Xlinker ld...", et dans ce cas j'obitiens:
mon_fichier.c: In function `get_options': mon_fichier.c:354: warning: return makes pointer from integer without a cast ld: file not found: ld collect2: ld returned 1 exit status
Or, si je vais dans /usr/bin, j'ai bien un fichier "ld"
J'utilisais la version gcc 4.0.0 (Mac OS X 10.4), puis suis passé à la version 4.0.1(Mac OS X 10.5) et j'ai même testé avec la version 4.2.1 (Mac OS X 10.6) mais toujours le même problème.
Pour terminer, le code source a pu être compiler sans problème sous Windows et Linux par la personne me passant ce code. J'ai d'ailleurs pu utiliser sans problème l'exécutable Windows avec un emulateur
Je vous suis d'avance très reconnaissant de votre aide car je suis complètement perdu et ceux qui ont essayé de m'aider dans mon entourage aussi ...
A voir également:
- [C]Problème avec la compilation gcc
- Code blocks avec compilateur - Télécharger - Langages
- Breach compilation c'est quoi - Guide
- Comment faire une compilation de musique - Forum Audio
- Compilation gcc avec fonctions pow et sqrt ✓ - Forum Programmation
- Compiler un .bat avec gcc ✓ - Forum Autoit / batch
3 réponses
Salut.
la compilation se passe bien. Donc tes sources doivent être correctes.
Si j'ai bien compris tu est sous MAC.
Le message te dit qu'il n'arrive pas à trouver certaines fonctions.
Ce genre d'erreur indique qu'il manque un fichier.o ou une bibliothèques. En général les bibliothèques sont liées aux fichiers .h, et portent un nom similaire.
Il manque peut être un -lstdlib ou -libc...
La ligne de compilation me parait étrange. C'est la première fois que je fois des crochets. As tu essayé en enlevant les crochets et ce qu'ils contiennent ?
la compilation se passe bien. Donc tes sources doivent être correctes.
Si j'ai bien compris tu est sous MAC.
Le message te dit qu'il n'arrive pas à trouver certaines fonctions.
Ce genre d'erreur indique qu'il manque un fichier.o ou une bibliothèques. En général les bibliothèques sont liées aux fichiers .h, et portent un nom similaire.
Il manque peut être un -lstdlib ou -libc...
La ligne de compilation me parait étrange. C'est la première fois que je fois des crochets. As tu essayé en enlevant les crochets et ce qu'ils contiennent ?
6ril
en fait les crochets c'était pour dire que j'avais essayé avec et sans cette partie et que les résultats était identiques
hello
utiliser l'option
gcc -I rep
où rep est le répertoire contenant le fichier "mon_fichier.h"
les fichiers entre <> sont cherchés dans /usr/include
utiliser l'option
gcc -I rep
où rep est le répertoire contenant le fichier "mon_fichier.h"
les fichiers entre <> sont cherchés dans /usr/include
il manque un .o ou une librairie contenant free_combi, print_message, launch_combinhaplo, etc ?
ben en fait, j'ai entré mes fichiers dans Xcode et la seule erreur qu'il me reste est:
Alors il ne doit pas y avoir un manque de librairie, juste une erreur dans la commande de compilation
Sinon, existe-t-il une différence entre les "EXIT_FAILURE" sous Mac et sous Linux?
mon_fichier.c: In function 'get_options': mon_fichier.c:354: warning: return makes pointer from integer without a cast
Alors il ne doit pas y avoir un manque de librairie, juste une erreur dans la commande de compilation
Sinon, existe-t-il une différence entre les "EXIT_FAILURE" sous Mac et sous Linux?