Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/11/2013, à 12:40

tienou2

Compiler avec GCC

Bonjour à tous,

Alors ça ne fait pas longtemps que je fais de la programmation, je voudrais compiler un petit programme en C avec gcc.
Je lance donc la commande suivante dans le terminal:

 gcc -o sousech_test -c tmp/sousech/sousech.c

Et là il me dit :

tmp/sousech/sousech.c:28:19: erreur fatale: sstream : Aucun fichier ou dossier de ce type

Je ne comprends pas qu'il ne reconnaisse pas la librairie sstream alors qu'il reconnait les autres...
Voici le code :

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <stdio.h>
#include <stdlib.h>
#include <sstream>
#include <iostream>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <string.h>
#include <map>
#include <vector>
#include <utility>


int max_level=10;
int res[12]={0,1,2,4,8,20,40,100,125,250,500,1000};
int depth=4;

std::string filename(std::string basedir, int x, int y, int level, int type)
//type 1 : MNT, type 2 : SRC, type 3 : DST
{
	std::string filename=basedir;
	std::ostringstream ssx,ssy,ssl;
	for (int i=0;i<depth;i++){
		ssx<<"0";
        	ssy<<"0";
	}
	ssx<<x;
etc...

Une idée? Merci d'avance.

Hors ligne

#2 Le 06/11/2013, à 13:13

Compte anonymisé

Re : Compiler avec GCC

Salut

Ne devrais-tu pas renommer ton fichier sources :
tmp/sousech/sousech.cpp  au lieu de tmp/sousech/sousech.c

@+

#3 Le 06/11/2013, à 13:31

claudius01

Re : Compiler avec GCC

Bonjour,

jeanjd63 a écrit :

Je ne comprends pas qu'il ne reconnaisse pas la librairie sstream alors qu'il reconnait les autres...

Tout d'abord, ce n'est pas encore une librairie que gcc (g++ serait d'ailleurs plus adapté) ne trouve pas mais le fichier header 'sstream'.

Peux-tu lancer la commande suivante et retourner le résultat :

$ find /usr/include -name "*stream"
...
/usr/include/c++/4.6/istream
/usr/include/c++/4.6/sstream
/usr/include/c++/4.6/ostream
/usr/include/c++/4.6/iostream
/usr/include/c++/4.6/backward/strstream
/usr/include/c++/4.6/fstream
...

Cordialement, A+
--
Claudius

Hors ligne

#4 Le 06/11/2013, à 15:11

tienou2

Re : Compiler avec GCC

Ok effectivement c'est du c++ et non du c!
En renommant mon fichier en .cpp ça compile.
Par contre quand je veux lancer en ligne de commande l'exécutable généré (sousech_test), il me dit "commande introuvable".
Je sais que c'est idiot mais comment faire? Il faut lui mettre une extension? (comme .app)

Hors ligne

#5 Le 06/11/2013, à 15:15

Epehj

Re : Compiler avec GCC

Salut,

Il faut te placer dans le dossier de compilation, et indiquer le chemin de l'executable : ./sousech_test
Si tu ne mets pas ./, alors le shell va chercher ta commande dans le Path, et ne la trouvera pas…


Linux user #447629 - Ubuntu user # 21770
C'est en sciant que Léonard devint scie

Hors ligne

#6 Le 06/11/2013, à 15:15

Compte anonymisé

Re : Compiler avec GCC

Déjà lui donner les droits d'exécution :
chmod a+x  sousech_test

Puis faire un :
./sousech_test

#7 Le 06/11/2013, à 16:09

tienou2

Re : Compiler avec GCC

ok effectivement il y avait aussi des problèmes avec les droits, c'est bon!
Mais maintenant il me met:

-bash: ./sousech_test : fichier binaire impossible à lancer

...ça veut dire que ce n'est pas possible de le lancer en terminal?
(désolé d'être relou, merci à vous;))

Hors ligne

#8 Le 06/11/2013, à 16:16

Compte anonymisé

Re : Compiler avec GCC

gcc -o sousech_test -c tmp/sousech/sousech.cpp

  va simplement compiler donc ne va pas créer un exécutable.
Il faudrait essayer :
gcc -o  sousech_test   tmp/sousech/sousech.cpp