Problème de compilation: Référence indéfinies
Bonjour à tous.
Voilà, je me suis remis au cpp après quelque mois d'inactivité dans ce domaine, et je dois dire que j'ai du mal à m'y remettre comme il faut.
Mais cela n'est pas vraiment mon problème pour l'instant.
Mon problème est assez simple, lorsque je souhaite compiler mon applic, il me fait l'erreur suivante:
Citation:
cc -DLINUX -c main.cxx
cc -DLINUX -c ./piecemusee/piecemusee.cxx
cc -DLINUX -c FichierLog.cxx
cc -DLINUX -o applic main.o piecemusee.o FichierLog.o
main.o: dans la fonction « __static_initialization_and_destruction_0(int, int)»:
main.cxx: (.text+0x23): référence indéfinie vers « std::ios_base::Init::Init()»
main.o: dans la fonction « __tcf_0 »:
main.cxx: (.text+0x66): référence indéfinie vers « std::ios_base::Init::~Init()»
main.o: dans la fonction « MainMenu() »:
// et ainsi de suite
Je vais vous montrer la hiérarchie de fichier que j'ai mise en place:
>main.cxx
>Ecran.h
>FichierLog.h .cxx
>makefile
>piecemusee>piecemusee.h .cxx
Je travaille sur un OpenSuse 10.1, j'ai installer les packages gcc et make pour pouvoir compiler et tester mon applic. Dans quelques semaines, je devrais transposer cette applic pour qu'elle tourne sur une machine SUN.
Je vous montre ici mon makefile:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
CC = cc -DLINUX
all: Main PM LOG
$(CC) -o applic main.o piecemusee.o FichierLog.o
Main:
$(CC) -c main.cxx
PM:
$(CC) -c ./piecemusee/piecemusee.cxx
LOG:
$(CC) -c FichierLog.cxx
clean:
@rm -f *.o applic core |
Je ne pense pas qu'il y ai d'erreur dans ce dernier, mais sait-on jamais.
Je vous montre ci-après, les includes et directive de compilation que j'applique à mes fichiers .h et .cxx:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
// pour le main.cxx
#ifdef VISUAL
#include <iostream.h>
#elif BORLAND
#include<iostream.h>
#elif DEC
#include<stream.h>
#elif SUN
#include<iostream>
using namespace std;
#elif LINUX
#include<iostream>
using namespace std;
#endif
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<fstream>
#include<string.h>
#include"./piecemusee/piecemusee.h"
#include"./Ecran.h"
#include"./FichierLog.h" |
SI je comprend bien, il ne veut pas de mon namespace, pourtant, je pense bien avoir signalé celui-ci comme il faut.
Je ne vois pas d'où pourrait venir l'erreur. Quelqu'un parmi vous pourrait-il donc me porter conseils?
Merci pour l'aide que vous pourrez m'apporter.
Je m'excuse pour la longueur du message, mais ceux qui me connaisse, sauront que ces dans mes habitudes de tartiner de beau grand message.
Ainsi au moins, je suis presque sur de ne rien avoir oublier.
Merci encore pour l'aide que vous m'apporterez,
Richard_sraing