Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++ > GCC
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/07/2011, 16h27   #1
dskv001
Invité de passage
 
Inscription : février 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 4
Points : 1
Points : 1
Par défaut [cygwin]problème d'éditeur de lien avec le modificateur externe en c++

Bonjour,
Au cours de la compilation séparée d'un petit projet comprenant les fichiers:
my.h, my.cpp, use.cpp et dont les codes sont les suivants, est survenu un problème d'édition de lien.
my.h:
Code c++ :
1
2
3
extern int foo;
void print_foo();
void print(int);

my.cpp:
Code c++ :
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include "my.h"
using namespace std;
 
void print_foo()
{
   cout << "valeur de foo = " << foo << endl; 
}
void print(int i)
{
   cout << "valeur de i = " << i << endl;
}

use.cpp
Code c++ :
1
2
3
4
5
6
7
8
#include "my.h"
 
int main()
{
   int foo = 7;
   print_foo();
   print(99);
}

Mon editeur de lien refuse de produire l'exécutable my, suite au lancement de ma ligne de commande:
Code :
g++ my.o -c use.cpp -o my
en repondant par:
Code :
g++: my.o: linker input file unused because linking not done
ou à celui de la commande make dont voici la reponse:
Code :
1
2
3
/tmp/cctPr4fI.o: my.cpp: (.text+0xba): undefined reference to '_foo'
collect 2: Id returned 1 exit status
make: *** [my] Error 1
Pour moi l'élément déclencheur de l'erreur est le mot-clé "extern" dans mon fichier-entête. D'après mes analyses, j'en suis arrivé à la conclusion que
que dans mon installation de cygwin il manquerait probablement les paquets dont a besoin l'éditeur de lien pour utiliser ce mot-clé et que j'ai certainement omis dans mon téléchargement.
Mais alors, je connais pas les noms de ces paquets, même malgré mes multiples tentatives sur le web.
J'ai vraiment besoin d'aide. Merci d'avance!
dskv001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2012, 14h59   #2
dskv001
Invité de passage
 
Inscription : février 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 4
Points : 1
Points : 1
En fait, j'avais cherché trop loin. Il fallait simplement plutôt définir la variable "foo" de use.cpp, globale.
dskv001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h26.


 
 
 
 
Partenaires

Hébergement Web