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:
Je vais vous montrer la hiérarchie de fichier que j'ai mise en place: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
>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:
Je ne pense pas qu'il y ai d'erreur dans ce dernier, mais sait-on jamais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 vous montre ci-après, les includes et directive de compilation que j'applique à mes fichiers .h et .cxx:
SI je comprend bien, il ne veut pas de mon namespace, pourtant, je pense bien avoir signalé celui-ci comme il faut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"
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
Partager