Pages : 1
#1 Le 05/11/2008, à 15:54
- Nargzul
C++ et ubuntu 8.10
Bonjour,
J'ai réinstallé mon pc l'autre jour, j'avais un code qui marchait impec sous ubuntu 8.04, et désormais j'ai une liste de:
g++ main.cpp mdate.h Date.cpp
Date.cpp: In member function ‘const char* Date::day_of_week() const’:
Date.cpp:189: erreur: ‘strcpy’ was not declared in this scope
Date.cpp: In member function ‘Date& Date::set_special_day(const char*)’:
Date.cpp:293: erreur: ‘strlen’ was not declared in this scope
Date.cpp:294: erreur: ‘strcpy’ was not declared in this scope
Date.cpp: In member function ‘const char* Date::get_special_day()’:
Date.cpp:304: erreur: ‘strlen’ was not declared in this scope
Date.cpp:307: erreur: ‘strcat’ was not declared in this scope
Date.cpp:311: erreur: ‘strcat’ was not declared in this scope
Date.cpp:314: erreur: ‘strcat’ was not declared in this scope
Date.cpp:316: erreur: ‘strcat’ was not declared in this scope
Date.cpp: In member function ‘const char* Date::holiday() const’:
Date.cpp:355: erreur: ‘strlen’ was not declared in this scope
Date.cpp:356: erreur: ‘strcpy’ was not declared in this scope
Date.cpp:363: erreur: ‘strlen’ was not declared in this scope
Date.cpp:364: erreur: ‘strcpy’ was not declared in this scope
Date.cpp:372: erreur: ‘strlen’ was not declared in this scope
Date.cpp:373: erreur: ‘strcpy’ was not declared in this scope
Date.cpp:379: erreur: ‘strlen’ was not declared in this scope
Date.cpp:380: erreur: ‘strcpy’ was not declared in this scope
Date.cpp:386: erreur: ‘strlen’ was not declared in this scope
Date.cpp:387: erreur: ‘strcpy’ was not declared in this scope
Date.cpp: In member function ‘Date& Date::operator=(const Date&)’:
Date.cpp:410: erreur: ‘strlen’ was not declared in this scope
Date.cpp:411: erreur: ‘strcpy’ was not declared in this scope
Lors de la compilation
pourtant j'ai le paquet build-essential correctement installé:
sudo apt-get install build-essential
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
build-essential est déjà la plus récente version disponible.
build-essential passé en « installé manuellement ».
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Avez vous une idée de ce qu'il me manque?
Dell E6400 - Ubuntu 9.10
Serveur OVH Kimsufi - Ubuntu 8.04
Heureux l'étudiant qui comme la rivière peut suivre son cours sans quitter son lit
Hors ligne
#2 Le 05/11/2008, à 16:03
- yohann
Re : C++ et ubuntu 8.10
vérifie si tu a bien un
#include <string.h>
dans ton code, car toutes les fonctions non définies proviennent de cette bibliotheque.
et je ne vois aucune erreur du précompilateur comme quoi ce fichier n'est pas trouvé
si la ligne est présente essaye la compilation avec -Lstring (de mémoire car j'ai pas fait de C depuis quelques mois)
ou alors :
locate string.h
puis la compilation avec -Ipath/to/sring.h -Lstring
toujours de mémoire.
bonne chance en tout cas, c'est pas un problème tres grave je pense
oups:
j'avais pas vu c'est des fichier .cpp!
alors il doit y avoir peut etre une histoire de namespace:
genre using namespace "string";
ou alors préfixer les fonctions qui foirent avec string::
poste un bout de code si c'est rien de tout cela
Dernière modification par yohann (Le 05/11/2008, à 16:05)
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#3 Le 05/11/2008, à 16:41
- Nargzul
Re : C++ et ubuntu 8.10
Le truc c'est que j'ai jamais utilisé de string mais toujours des tableaux de char.
Deuxième truc étonnant:
Avec codeblock, il arrive à le compiler et le lancer sans problème, donc je pense que le code est juste, surtout qu'avant j'avais réussi à le lancer sans trop de soucis.
C'est pas des trucs hypers compliqués, c'était une classe d'introduction au c++, mais si tu veux que je te donne du code dis le.
Merki!
Dell E6400 - Ubuntu 9.10
Serveur OVH Kimsufi - Ubuntu 8.04
Heureux l'étudiant qui comme la rivière peut suivre son cours sans quitter son lit
Hors ligne
#4 Le 05/11/2008, à 18:13
- yohann
Re : C++ et ubuntu 8.10
en fait string.h est la bibliotheque qui contient toutes les fonction qui commencent par str que tu utilise (man strcpy pour t'en convaincre).
donc cette bibliotheque DOIT etre incluse pour la compilation (de manière automatique, comme sur la précédente version d'ubuntu, ou avec codeblock, ou alors de manière manuelle comme avec la ligne de commande que tu utilise)
sinon il ne faut pas confondre <string.h> qui est une bibliothèque de C standard et string qui est une bibliotheque C++ pour l'utilisation de l'objet string.
la premiere traite des tableau de char alors que la seconde traite des objets string.
je ne doute pas de la justesse de ton code puisqu'il compilait avant, mais d'une instruction particuilière: #include <string.h> a mettre au début du code.
j'espère avoir été suffisament clair, bonne chance pour la suite
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#5 Le 06/11/2008, à 06:45
- Jean Bréfort
Re : C++ et ubuntu 8.10
En C++, il vaut mieux inclure cstring que string.h :
#include <cstring>
#6 Le 09/11/2008, à 03:09
- elmer_tandem
Re : C++ et ubuntu 8.10
Les fonctions que tu utilises (strlen, etc) sont dans la bibli. C et pas la la STD C++. Donc tu doit inclure <cstring> (i.e string.h), ou <cstdlib> (i.e. stdlib.h), etc. La reponse est donnee ci dessus en fait.
A +.
Bob(s).
Pages : 1