Compilation C/C++
Fermé
LSmi
-
16 avril 2008 à 10:53
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 16 avril 2008 à 14:57
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 16 avril 2008 à 14:57
A voir également:
- Compilation C/C++
- Breach compilation - Guide
- Tried to run compiler executable 'c:\mingw/bin/gcc.exe', but failed! ✓ - Forum C++
- Compilation année 80 télécharger gratuit - Forum Musique / Radio / Clip
- Compilation error: expected ')' before ';' token ✓ - Forum C
- Telecharger compilateur c code blocks - Télécharger - Langages
3 réponses
Bonjour,
Alors g++ compile également les fichier écrit en langage C, donc pas de soucis !
Pour ton erreur, je ne suis pas spécialiste de g++ (loin de là d'ailleurs), mais ne dit-il pas que la variable in_charge n'est déclarée nulle part ?
++
Alors g++ compile également les fichier écrit en langage C, donc pas de soucis !
Pour ton erreur, je ne suis pas spécialiste de g++ (loin de là d'ailleurs), mais ne dit-il pas que la variable in_charge n'est déclarée nulle part ?
++
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
16 avril 2008 à 11:10
16 avril 2008 à 11:10
salut, en effet utilise g++ pour le cpp et gcc pour le c.
Mais de manière générale, utilise gcc, qui normalement fait appel à g++ quand il tombe sur un .cpp.
En revanche, ton problème n'est pas un problème de compilation, mais d'édition des liens.
Il faut savoir que pour lier du C et du C++, il déclarer les fonctions C en C++ en ajoutant un extern "C" devant.
Mais de manière générale, utilise gcc, qui normalement fait appel à g++ quand il tombe sur un .cpp.
En revanche, ton problème n'est pas un problème de compilation, mais d'édition des liens.
Il faut savoir que pour lier du C et du C++, il déclarer les fonctions C en C++ en ajoutant un extern "C" devant.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
16 avril 2008 à 13:54
16 avril 2008 à 13:54
heu...
le extern "C" est à mettre dans les fichiers C++ qui appellent des fonctions C, pas l'inverse.
Aprsè l'erreur viens peut être dautre chose, montre nous ta classe voir si ça ne viens pas de là.
le extern "C" est à mettre dans les fichiers C++ qui appellent des fonctions C, pas l'inverse.
Aprsè l'erreur viens peut être dautre chose, montre nous ta classe voir si ça ne viens pas de là.
LSmi
>
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
16 avril 2008 à 14:24
16 avril 2008 à 14:24
Par exemple losque je veux compiler le code suivant (fichier mainSecurity.cpp) :
Il me met l'erreur, par contre il n'y a pas de problème dès que j'enlève le
Je compile comme ça :
#include "Security_IF.h" #include <stdio.h> int main() { const char * data = "AAAAAA"; unsigned int length = 6; Security_IF security1(data, length); printf("OK !\n"); return 1; }
Il me met l'erreur, par contre il n'y a pas de problème dès que j'enlève le
Security_IF security1(data, length);
Je compile comme ça :
#g++ -W -Wall -ansi -pedantic -c mainSecurity.cpp #g++ -W -Wall -ansi -pedantic -c Security_IF.cpp #g++ -W -Wall -ansi -pedantic mainSecurity.o -o mainSecurity
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
16 avril 2008 à 14:57
16 avril 2008 à 14:57
ba voila, tout s'explique.
en troisième ligne, tu lie mainSecuryti.o au librairies standard, et c'est tout, alors que ta fonction Security_IF security1(data, length); se trouve dans Security_IF.cpp, c'est normale qu'il ne la trouve pas !
g++ -W -Wall -ansi -pedantic mainSecurity.o Security_IF.o -o mainSecurity
à quoi sert de créer un .o si tu ne l'utilise pas ???
en troisième ligne, tu lie mainSecuryti.o au librairies standard, et c'est tout, alors que ta fonction Security_IF security1(data, length); se trouve dans Security_IF.cpp, c'est normale qu'il ne la trouve pas !
g++ -W -Wall -ansi -pedantic mainSecurity.o Security_IF.o -o mainSecurity
à quoi sert de créer un .o si tu ne l'utilise pas ???