C/C++ avec GCC
Foxysama
-
IB -
IB -
Bonsoir,
Léger soucis lors de la compilation du code suivant:
------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
main(){
int valeur;
int essai;
int nbre = 1;
cout << "Entrer le nombre a chercher : ";
cin >> valeur;
clrscr();
cout << "Entrer un essai : ";
cin >> essai;
while (essai != valeur){
if (essai > valeur){
cout << "Trop grand!";
else
cout << "Trop petit!";
};
cout << "/nEntrer un nouvel essai : ";
cin >> essai;
nbre++;
}
cout << "Vous avez trouvé en " << nbre << " fois";
getch();
}
------------------------------------------------------------
Lors de la compilation j'obtiens le message suivant:
foxysama@fox-nr21s:~/Documents> gcc -c exo1.cpp
exo1.cpp:1:22: error: iostream.h: Aucun fichier ou dossier de ce type
exo1.cpp:2:19: error: conio.h: Aucun fichier ou dossier de ce type
exo1.cpp: In function ‘int main()’:
exo1.cpp:9: error: ‘cout’ was not declared in this scope
exo1.cpp:10: error: ‘cin’ was not declared in this scope
exo1.cpp:11: error: ‘clrscr’ was not declared in this scope
exo1.cpp:17: error: expected `}' before ‘else’
exo1.cpp: At global scope:
exo1.cpp:24: error: expected constructor, destructor, or type conversion before ‘<<’ token
exo1.cpp:25: error: expected constructor, destructor, or type conversion before ‘;’ token
exo1.cpp:26: error: expected declaration before ‘}’ token
------------------------------------------------------------
Je suppose que c'est un problème avec les librairies ... mais comment importer diverses librairies?
Merci d'avance,
Bonne soirée.
Léger soucis lors de la compilation du code suivant:
------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
main(){
int valeur;
int essai;
int nbre = 1;
cout << "Entrer le nombre a chercher : ";
cin >> valeur;
clrscr();
cout << "Entrer un essai : ";
cin >> essai;
while (essai != valeur){
if (essai > valeur){
cout << "Trop grand!";
else
cout << "Trop petit!";
};
cout << "/nEntrer un nouvel essai : ";
cin >> essai;
nbre++;
}
cout << "Vous avez trouvé en " << nbre << " fois";
getch();
}
------------------------------------------------------------
Lors de la compilation j'obtiens le message suivant:
foxysama@fox-nr21s:~/Documents> gcc -c exo1.cpp
exo1.cpp:1:22: error: iostream.h: Aucun fichier ou dossier de ce type
exo1.cpp:2:19: error: conio.h: Aucun fichier ou dossier de ce type
exo1.cpp: In function ‘int main()’:
exo1.cpp:9: error: ‘cout’ was not declared in this scope
exo1.cpp:10: error: ‘cin’ was not declared in this scope
exo1.cpp:11: error: ‘clrscr’ was not declared in this scope
exo1.cpp:17: error: expected `}' before ‘else’
exo1.cpp: At global scope:
exo1.cpp:24: error: expected constructor, destructor, or type conversion before ‘<<’ token
exo1.cpp:25: error: expected constructor, destructor, or type conversion before ‘;’ token
exo1.cpp:26: error: expected declaration before ‘}’ token
------------------------------------------------------------
Je suppose que c'est un problème avec les librairies ... mais comment importer diverses librairies?
Merci d'avance,
Bonne soirée.
A voir également:
- C/C++ avec GCC
- 'Gcc' n'est pas reconnu en tant que commande interne ou externe, un programme ex�cutable ou un fichier de commandes. - Forum C
- Ubuntu probleme avec gcc - Forum Ubuntu
- Gcc -Wall ✓ - Forum Ubuntu
- Compiler un .bat avec gcc ✓ - Forum Autoit / batch
- Compiler sous visual studio code ✓ - Forum C++
18 réponses
A noter aussi qu'en C++ on ne met pas d'extension aux headers de la lib std.
Donc ce n'est pas
#include <iostream.h>
mais
#include <iostream>
(ce qui était d'ailleur peut-etre l'origine du probleme...)
Donc ce n'est pas
#include <iostream.h>
mais
#include <iostream>
(ce qui était d'ailleur peut-etre l'origine du probleme...)
n'aurais-tu pas une option pour dire à gcc où se trouvent les includes ? genre -I (in http://www.licence.info.upmc.fr/lmd/licence/2005/ue/LI205-2005oct/public/fiches-cini.pdf
parce qu'en fait, je connais pas grand chose à C ou C++ :)
parce qu'en fait, je connais pas grand chose à C ou C++ :)
damned ! la ')' est intégrée dans l'url :-(
l'url sans la ')' :
http://www.licence.info.upmc.fr/...
dsl de pas pouvoir t'aider plus
l'url sans la ')' :
http://www.licence.info.upmc.fr/...
dsl de pas pouvoir t'aider plus
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour ce qui es de l'option de gcc pour lui dire où se trouve les includes, je cherche depuis tout à l'heure dans le 'man'...
Mais il y a tellement d'options pour gcc ...
Mais il y a tellement d'options pour gcc ...
En cherchant su le net, je vois un peu partout que iostream.h n'existe pas en standard on inclue "iostream" (sans le .h), en ajoutant un "namespace std".
Bref je ne pense pas que cela change quelques chose ....
Et je ne trouve pas le contenu de ces deux bibliothèques ....
Arf..
Bref je ne pense pas que cela change quelques chose ....
Et je ne trouve pas le contenu de ces deux bibliothèques ....
Arf..
salut,
tu peux donner le résultats des commandes suivantes :
tu peux donner le résultats des commandes suivantes :
gcc -v
find /usr/include/ -name "iostream.h"
find /usr/include/ -name "conio.h"
foxysama@fox-nr21s:~/Documents> gcc -v
Using built-in specs.
Target: i586-suse-linux
Configured with: ../configure --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.3 --enable-ssp --disable-libssp --with-bugurl=https://en.opensuse.org/openSUSE:Submitting_bug_reports --with-pkgversion='SUSE Linux' --disable-libgcj --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --program-suffix=-4.3 --enable-version-specific-runtime-libs --enable-linux-futex --without-system-libunwind --with-cpu=generic --build=i586-suse-linux
Thread model: posix
gcc version 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] (SUSE Linux)
foxysama@fox-nr21s:~/Documents> find /usr/include/ -name "iostream.h"
foxysama@fox-nr21s:~/Documents> find /usr/include/ -name "conio.h"
foxysama@fox-nr21s:~/Documents>
Using built-in specs.
Target: i586-suse-linux
Configured with: ../configure --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.3 --enable-ssp --disable-libssp --with-bugurl=https://en.opensuse.org/openSUSE:Submitting_bug_reports --with-pkgversion='SUSE Linux' --disable-libgcj --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --program-suffix=-4.3 --enable-version-specific-runtime-libs --enable-linux-futex --without-system-libunwind --with-cpu=generic --build=i586-suse-linux
Thread model: posix
gcc version 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] (SUSE Linux)
foxysama@fox-nr21s:~/Documents> find /usr/include/ -name "iostream.h"
foxysama@fox-nr21s:~/Documents> find /usr/include/ -name "conio.h"
foxysama@fox-nr21s:~/Documents>
[redfox@mandriva ~]$ find /usr/include/ -name "iostream.h"
/usr/include/c++/4.2.3/backward/iostream.h
[redfox@mandriva ~]$ gcc -v
Utilisation des specs internes.
Target: i586-manbo-linux-gnu
Configuré avec: ../configure --prefix=/usr --libexecdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-checking=release --enable-languages=c,c++,ada,fortran,objc,obj-c++,java --host=i586-manbo-linux-gnu --with-cpu=generic --with-system-zlib --enable-threads=posix --enable-shared --enable-long-long --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --enable-gtk-cairo --disable-libjava-multilib --enable-ssp --disable-libssp
Modèle de thread: posix
version gcc 4.2.3 (4.2.3-6mnb1)
[redfox@mandriva ~]$
chez toi on peut lire : --with-gxx-include-dir=/usr/include/c++/4.3
quand à "conio.h" .....je ne l'ai pas !
/usr/include/c++/4.2.3/backward/iostream.h
[redfox@mandriva ~]$ gcc -v
Utilisation des specs internes.
Target: i586-manbo-linux-gnu
Configuré avec: ../configure --prefix=/usr --libexecdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-checking=release --enable-languages=c,c++,ada,fortran,objc,obj-c++,java --host=i586-manbo-linux-gnu --with-cpu=generic --with-system-zlib --enable-threads=posix --enable-shared --enable-long-long --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --enable-gtk-cairo --disable-libjava-multilib --enable-ssp --disable-libssp
Modèle de thread: posix
version gcc 4.2.3 (4.2.3-6mnb1)
[redfox@mandriva ~]$
chez toi on peut lire : --with-gxx-include-dir=/usr/include/c++/4.3
quand à "conio.h" .....je ne l'ai pas !
...étrange ces fichiers qui n'existent pas.
j'étais persuadé avoir lu dans pas mal d'endroits que le C était portable.
Peut-être ne l'est-il pas partout ?
j'étais persuadé avoir lu dans pas mal d'endroits que le C était portable.
Peut-être ne l'est-il pas partout ?
rappel: je suis un gros nul en C et encore plus en C++
néanmoins, ce n'était pas la peine d'aller chercher midi à 14h : https://www.google.com/search?q=iostream.h&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a&gws_rd=ssl donne en 1er résultat http://www.commentcamarche.net/forum/affich 446579 iostream h pour le c :-)
je me permets quand même ce petit conseil : on ne peut pas se lancer dans la programmation sans connaître un minimum du processus de génération des exécutables. Parce que sinon, tu vas passer ta vie à chercher dans de mauvaises directions.
néanmoins, ce n'était pas la peine d'aller chercher midi à 14h : https://www.google.com/search?q=iostream.h&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a&gws_rd=ssl donne en 1er résultat http://www.commentcamarche.net/forum/affich 446579 iostream h pour le c :-)
je me permets quand même ce petit conseil : on ne peut pas se lancer dans la programmation sans connaître un minimum du processus de génération des exécutables. Parce que sinon, tu vas passer ta vie à chercher dans de mauvaises directions.
salut,
j'étais persuadé avoir lu dans pas mal d'endroits que le C était portable
s'il y a bien un langage qui est portable, c'est bien le C !
néanmoins, ce n'était pas la peine d'aller chercher midi à 14h .............
et quelle est l'explication alors ?
j'étais persuadé avoir lu dans pas mal d'endroits que le C était portable
s'il y a bien un langage qui est portable, c'est bien le C !
néanmoins, ce n'était pas la peine d'aller chercher midi à 14h .............
et quelle est l'explication alors ?
Merci pour vos réponses.
Mr othanga, sachez que cela fait deux ans que je fais des études dans l'informatique, et que je fais de petit programmes en C/C++ (Reproduire une balle rebondissante à l'infinie dans une console en 24*80, création d'un morpion, le célèbre jeu pong etc...). La programmation en C, j'en ai mangé ... Même si je ne me proclame pas expert, loin de là, sinon je n'en serais pas réduit à poser ce genre de questions, étant novice certaines choses m'échappent. Donc permettez moi de bien vouloir, dans l'ignorance, exposer mon problème ....
De plus, l'adresse que vous m'avez fournit n'a pas réellement une réponse à ma question ...
Bref.
Aujourd'hui j'ai donc exposé mon problème à ma formatrice en développement, nous avons pas mal planché dessus, mais sans vraiment de réponses ...
Le truc est que j'ai le même problème que je sois sous Mandriva (2008.1) ou OpenSUSE (11.0).
L'an dernier, j'utilisais le même OS qu' actuellement (la Suse dans une version antérieure) et je n'avais pas rencontré ce problème. (Pourtant, c'est bien moi qui avais installé le système sur cette station... si mes souvenirs sont bons.... et tout avait fonctionner sans le moindre soucis.)
Serait-ce un paquet de librairie passé à la trappe ? J'avoue être un peu dans l'ignorance total sur ce point là, j'ai toujours suivis -comme un étudiant bête et discipliné- la programmation et les devoirs demandé, sans jamais vraiment me poser la question de "Mais d'où ça vient le iostream.h? Ca sert à quoi?". Etc...
Merci,
Bonne soirée.
Mr othanga, sachez que cela fait deux ans que je fais des études dans l'informatique, et que je fais de petit programmes en C/C++ (Reproduire une balle rebondissante à l'infinie dans une console en 24*80, création d'un morpion, le célèbre jeu pong etc...). La programmation en C, j'en ai mangé ... Même si je ne me proclame pas expert, loin de là, sinon je n'en serais pas réduit à poser ce genre de questions, étant novice certaines choses m'échappent. Donc permettez moi de bien vouloir, dans l'ignorance, exposer mon problème ....
De plus, l'adresse que vous m'avez fournit n'a pas réellement une réponse à ma question ...
Bref.
Aujourd'hui j'ai donc exposé mon problème à ma formatrice en développement, nous avons pas mal planché dessus, mais sans vraiment de réponses ...
Le truc est que j'ai le même problème que je sois sous Mandriva (2008.1) ou OpenSUSE (11.0).
L'an dernier, j'utilisais le même OS qu' actuellement (la Suse dans une version antérieure) et je n'avais pas rencontré ce problème. (Pourtant, c'est bien moi qui avais installé le système sur cette station... si mes souvenirs sont bons.... et tout avait fonctionner sans le moindre soucis.)
Serait-ce un paquet de librairie passé à la trappe ? J'avoue être un peu dans l'ignorance total sur ce point là, j'ai toujours suivis -comme un étudiant bête et discipliné- la programmation et les devoirs demandé, sans jamais vraiment me poser la question de "Mais d'où ça vient le iostream.h? Ca sert à quoi?". Etc...
Merci,
Bonne soirée.
@bob031 : Merci de ta précieuse info !!
Voilà ce que contient mon "/usr/include/c++/4.3/backward" :
Pas de iostream.h ni de conio ou autre bibliothèque connu ...
Un problème docteur ?
Voilà ce que contient mon "/usr/include/c++/4.3/backward" :
foxysama@fox-nr21s:/usr/include/c++/4.3/backward> ls -l total 116 -rw-r--r-- 1 root root 9666 juin 6 20:43 auto_ptr.h -rw-r--r-- 1 root root 2665 juin 6 20:43 backward_warning.h -rw-r--r-- 1 root root 6942 juin 6 20:43 binders.h -rw-r--r-- 1 root root 4516 juin 6 20:43 hash_fun.h -rw-r--r-- 1 root root 17935 juin 6 20:43 hash_map -rw-r--r-- 1 root root 17355 juin 6 20:43 hash_set -rw-r--r-- 1 root root 32981 juin 6 20:43 hashtable.h -rw-r--r-- 1 root root 5769 juin 6 20:43 strstream foxysama@fox-nr21s:/usr/include/c++/4.3/backward>
Pas de iostream.h ni de conio ou autre bibliothèque connu ...
Un problème docteur ?
1) il faut chercher avec la commande find pour savoir si le fichier iostream.h existe quelque part dans ton système. Si tu as des doute sur le fait que tu n'as pas eu de résultat dans le répertoire /usr/include, fait une recherche dans / . Tu peux tester ta commande find avec un ficheir qui existe, si tu as un retour, ta commande find est ok !
2) il faut savoir de quand date ton script que tu as probablement récuperé ! Tester un vieux script de 20 ans avec la dernière version gcc, c'est peut-être pas la meilleure chose !
3) apparemment il te manque des bibliothèques ....
2) il faut savoir de quand date ton script que tu as probablement récuperé ! Tester un vieux script de 20 ans avec la dernière version gcc, c'est peut-être pas la meilleure chose !
3) apparemment il te manque des bibliothèques ....
Yes, la commande find marche bel et bien !
Donc je n'ai bel et bien pas de fichiers iostream.h dans ce dossier.... ce qui reste problématique ...
Et le script n'est pas ancien, je l'ai écrit vite fait pour tester si il trouvait la(les) bibliothèques! (J'ai besoin de 'conio.h' pour pouvoir utiliser mon 'getch()', je crois...)
Merci en tout cas, c'est peut-être pour toi pas grand chose, mais au moins je sais que ces foutus bilibothèque ne sont pas par default sur les système que j'utilise. Thanks.
foxysama@fox-nr21s:/usr/include/c++/4.3/backward> find /usr/include/c++/4.3/backward /usr/include/c++/4.3/backward /usr/include/c++/4.3/backward/auto_ptr.h /usr/include/c++/4.3/backward/hashtable.h /usr/include/c++/4.3/backward/hash_map /usr/include/c++/4.3/backward/binders.h /usr/include/c++/4.3/backward/hash_fun.h /usr/include/c++/4.3/backward/strstream /usr/include/c++/4.3/backward/backward_warning.h /usr/include/c++/4.3/backward/hash_set
Donc je n'ai bel et bien pas de fichiers iostream.h dans ce dossier.... ce qui reste problématique ...
Et le script n'est pas ancien, je l'ai écrit vite fait pour tester si il trouvait la(les) bibliothèques! (J'ai besoin de 'conio.h' pour pouvoir utiliser mon 'getch()', je crois...)
Merci en tout cas, c'est peut-être pour toi pas grand chose, mais au moins je sais que ces foutus bilibothèque ne sont pas par default sur les système que j'utilise. Thanks.
Comment ajouter les bibliotheques manquantes?
Un paquet de bibliotheques peut être ?
Je ne vois pas cela sous YaST sous OpenSUSE ..
Un paquet de bibliotheques peut être ?
Je ne vois pas cela sous YaST sous OpenSUSE ..
Bonjour à tous,
Je débute avec C++. Je travaille sur ubuntu 8.10 et j'ai fait "built essential" permettant d'installer gcc, g++.
J'ai un problème à la compilation. Quand je compile mon prog echange_adr.cpp avec la commande :
g++ echange_adr.cpp -o echange_adr,
il m'affiche une erreur :
echange_adr.cpp: In function ‘int main()’:
echange_adr.cpp:16: erreur: ‘cout’ was not declared in this scope
Je me suis dit alors que peut être le compilateur c++ ne trouve pas l'endroit ou se trouve
<iostream> qui prend en charge cout.
J'ai fait la recherche manuellement pour localiser <iostream> :
find /usr/include/ -name "iostream"
et le résultat :
/usr/include/c++/4.3/iostream
J'ai recompilé avec l'option -I (puis avec -L) en faisant :
g++ echange_adr.cpp -o echange_adr -I /usr/include/c++/4.3/iostream mais pareil, toujours la meme erreur :
echange_adr.cpp: In function ‘int main()’:
echange_adr.cpp:15: erreur: ‘cout’ was not declared in this scope
echange_adr.cpp:16: erreur: ‘cin’ was not declared in this scope
La bibliothèque n'est elle donc pas installée sur le système alors qu'au début j'ai bien fait :
build essential
Si oui, je fais comment pour installer cette bibliothèque manquante ( iostream ) et surement, par la suite, il manque aussi d'autres bibliothèques de bases.
Foxysana, a tu identifier ton problème ? a tu trouvé une solution
merci d'avance
Je débute avec C++. Je travaille sur ubuntu 8.10 et j'ai fait "built essential" permettant d'installer gcc, g++.
J'ai un problème à la compilation. Quand je compile mon prog echange_adr.cpp avec la commande :
g++ echange_adr.cpp -o echange_adr,
il m'affiche une erreur :
echange_adr.cpp: In function ‘int main()’:
echange_adr.cpp:16: erreur: ‘cout’ was not declared in this scope
Je me suis dit alors que peut être le compilateur c++ ne trouve pas l'endroit ou se trouve
<iostream> qui prend en charge cout.
J'ai fait la recherche manuellement pour localiser <iostream> :
find /usr/include/ -name "iostream"
et le résultat :
/usr/include/c++/4.3/iostream
J'ai recompilé avec l'option -I (puis avec -L) en faisant :
g++ echange_adr.cpp -o echange_adr -I /usr/include/c++/4.3/iostream mais pareil, toujours la meme erreur :
echange_adr.cpp: In function ‘int main()’:
echange_adr.cpp:15: erreur: ‘cout’ was not declared in this scope
echange_adr.cpp:16: erreur: ‘cin’ was not declared in this scope
La bibliothèque n'est elle donc pas installée sur le système alors qu'au début j'ai bien fait :
build essential
Si oui, je fais comment pour installer cette bibliothèque manquante ( iostream ) et surement, par la suite, il manque aussi d'autres bibliothèques de bases.
Foxysana, a tu identifier ton problème ? a tu trouvé une solution
merci d'avance