PDA

Afficher la version complète : [Réglé] [Réglé]Hello suse



atlas
11/11/2004, 19h58
Bonsoir ,

Dans un dossier "lol" j'aie un fichier C nommé "suse" (étrange codé en c++ et kwrite me l'enregistre en fichier source C ...)

Voici le code
<div class='quotetop'>Citation </div>
#include <iostream.h>
#include <stdio.h>

void main()
{


cout<<"En apéro la suse ,la première fois c'est amer!\nMais si on insiste le gout amer devient sucré,\nvous essaierez...";
getchar();


}[/b]

Ensuite la compilation en ligne de commande (j'aie fini par laisser tomber kdevelop je comprend queud')

Dans konsole j'essaie
<div class='quotetop'>Citation </div>
linux:/home/atlas/helloworld # gcc -o suse suse.c
gcc: suse.c: Aucun fichier ou répertoire de ce type
gcc: no input files [/b]

Je vérifie , le fichier a disparu !Seul , reste le fichier de sauvegarde avec le code concerné .
Je repète l'opération x fois avec de nouveaux fichiers contenant le même code .Et à chaque fois c'est le meme phénomène , le fichier source C est purement supprimé.
(quelquefois , le fichier source est quand meme présent mais gcc ne le détecte pas)

Encore une question dans cette commande
<div class='quotetop'>Citation </div>
linux:/home/atlas/helloworld # gcc -o suse suse.c [/b]

Est-ce-que je doit créer l'outfile (cad le 1 er suse) manuellement ou bien c'est gcc qui ce charge de le crée automatiquement ?

lucienmathieu
12/11/2004, 09h30
lut atlas, ce que tu fais est bon, pas de problème.

peux-tu faire un ls -la de ton répertoire avant la compilation stp?

normalement, gcc n'efface pas comme çà les fichiers ;-P

Pourrais-je corriger ton code?


// enlever le stdio.h
#include <iostream.h>

main() {
cout << "En apéro la suse ,la première fois c'est amer!" << endl;
cout << "Mais si on insiste le gout amer devient sucré," << endl;
cout << "vous essaierez...";
cin; //normalement le cin devrait attendre l'entrée de caractères, il faudra que je vérifie si il n'y a pas un cin.get quelque-chose :-P
}

par contre, je compilerai comme çelà


gcc -lstdc++ -o suse suse.c

atlas
12/11/2004, 10h50
Une remarque stupide avec kwrite :
lorsqu'on enregistre le code il faut taper le nom et l'extension .c ou .cpp pour obtenir la coloration syntaxique (chose que je ne faisais pas ; pas de coloration ; ce qui expliquerait mon message d'erreur gcc: suse.c: Aucun fichier ou répertoire de ce type).Renommer les fichiers en .c ou .cpp ne changera rien .

Sinon ça coince toujours, ci-dessous mes tentatives .

<div class='quotetop'>Citation </div>
linux:/home/atlas # cd lol
linux:/home/atlas/lol # ls -la
total 11
drwxr-xr-x 2 atlas users 96 2004-11-12 09:28 .
drwxr-xr-x 38 atlas users 2568 2004-11-12 09:29 ..
-rw-r--r-- 1 atlas users 363 2004-11-12 09:23 suse.c
-rw-r--r-- 1 atlas users 363 2004-11-12 09:29 suse.cpp

linux:/home/atlas/lol # gcc -lstdc++ -o suse suse.c
suse.c:2:22: iostream.h: Aucun fichier ou répertoire de ce type
suse.c: In function `main':
suse.c:5: error: `cout' undeclared (first use in this function)
suse.c:5: error: (Each undeclared identifier is reported only once
suse.c:5: error: for each function it appears in.)
suse.c:5: error: `endl' undeclared (first use in this function)
suse.c:8: error: `cin' undeclared (first use in this function)
suse.c:9:2: warning: no newline at end of file

linux:/home/atlas/lol # gcc -lstdc++ -o suse suse.cpp
In file included from /usr/include/g++/backward/iostream.h:31,
from suse.cpp:2:
/usr/include/g++/backward/backward_warning.h:32:2: warning: #warning This file i ncludes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples includ e substituting the <X> header for the <X.h> header for C++ includes, or <sstream > instead of the deprecated header <strstream.h>. To disable this warning use -W no-deprecated.
suse.cpp:9:2: warning: no newline at end of file

linux:/home/atlas/lol # gcc suse.c -o suse
ici j'aie un doute puis-je faire ceci gcc -o suse suse.c ?(pour la compréhension de la ligne c'est pas l'extase)

suse.c:2:22: iostream.h: Aucun fichier ou répertoire de ce type
suse.c: In function `main':
suse.c:5: error: `cout' undeclared (first use in this function)
suse.c:5: error: (Each undeclared identifier is reported only once
suse.c:5: error: for each function it appears in.)
suse.c:5: error: `endl' undeclared (first use in this function)
suse.c:8: error: `cin' undeclared (first use in this function)
suse.c:9:2: warning: no newline at end of file

linux:/home/atlas/lol # gcc -lstdc++ -o test main.cpp
gcc: main.cpp: Aucun fichier ou répertoire de ce type
linux:/home/atlas/lol #[/b]

lucienmathieu
12/11/2004, 12h26
euh, c'est bizarre, je dirais qu'il manque quelque chose dans la config, essaie quand même de compiler comme suit


atlas# gcc -I/usr/include/g++ -lstdc++ -Wno-deprecated -o suse suse.cpp

pour le cin, c'est pas bon ce que j'ai mis, désolé de me corriger si tard ;-P


cin.get();

devloop
12/11/2004, 17h58
euh plus simple à tapper :
g++ -o suse suse.cpp

atlas
12/11/2004, 18h40
Pareil , j'aie essayé toutes les sauces


linux:/home/atlas/lol # g++ -o suse suse.cpp
In file included from /usr/include/g++/backward/iostream.h:31,
from suse.cpp:2:
/usr/include/g++/backward/backward_warning.h:32:2: warning: #warning This file i ncludes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples includ e substituting the <X> header for the <X.h> header for C++ includes, or <sstream > instead of the deprecated header <strstream.h>. To disable this warning use -W no-deprecated.
suse.cpp:9:2: warning: no newline at end of file

linux:/home/atlas/lol # gcc -I/usr/include/g++ -lstdc++ -Wno-deprecated -o suse suse.cpp
suse.cpp:9:2: warning: no newline at end of file
linux:/home/atlas/lol #

Un executable "suse" a été crée mais il ne fonctionne pas quand je clique dessus !
J'avais au préalable ,dans Yast ,désinstallé puis réinstallé via le menu selection/compilateur c/c++ .Et j'aie meme installé 90% des bibliothèques du DVD(2h) .Nada ...Là , j'suis un peu détruit http://www.alionet.org/style_emoticons/<#EMO_DIR#>/sad.gif

Bôa , pour tenir le choc , j'aie sortis mon thé du Hammam (datte verte , fleur d'oranger,rose et fruits rouges ...Mouais c'est pas le sujet du topic mais râler pas ça vous donne des idées pour noel (cf www.palaisdesthes.com (surtout les thes épicés))
http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

devloop
13/11/2004, 14h19
edit : j'ai trouvé d'où venais le problème
c'est juste parce qu'il y a eu des changements dans les librairies C++, ça arrive quelque fois et ça pose toujours des problèmes de compatibilité.

premièrement on ne met plus <iostream.h> mais seulement <iostream>
ensuite il faut inclure la ligne "using namespace std;"

exemple j'ai un fichier plop.c :

#include <iostream>
using namespace std;

int main()
{
cout<<"blah\nblah";
return 0;
}

on compile :
$ g++ -o plop plop.cpp

et on lance :
$ ./plop
blah
blah

jacqueline
13/11/2004, 15h45
waoooooouh !

Il y a des toiles dans les exemples de programmation en C++ qui datent un peu ....

Oui atlas ! kdevelop c'est une centrale nucléaire... pour faire un prog de deux lignes ?


Mais il faut bien apprendre à l'utiliser pour faire des progs avec de belles fenêtres, plus tard, mais il devrait éviter ce genre de choses.

J'ai eue une montagne d'erreurs dès le lancement de la création de projet, avant même d'avoir écrit une seule ligne de programme, parce qu'il manquait plein de librairies à cause de la façon dont je l'ai installé ( paquetage par paquetage... forcément j'en ai oubliés et les messages d'erreur ne te disent pas toujours clairement lesquels. )

J'espère que cette fois il va marcher (il y a tous les paquetages "développement pour KDE" ).

Courage

Jacqueline

atlas
13/11/2004, 21h08
devloop est dans le vrai ; le proggy fonctionne avec un ./suse .Un détail gênant subsiste néanmoins : cliquer sur l'executable ne lance pas le prog ?!

Pour répondre à Jacqueline , j'aie mis kdevelop de coté .
Mon niveau est trop faible pour le comprendre et la ligne de commande a encore beaucoup à m'apprendre .
Sinon j'avais eu comme toi l'idée d'installer tous les paquetages via "developpement KDE"
J'ajouterais que d'une manière globale c'est comme ça qu'il faut procéder cad installation en gros , en vrac et non pas paquet par paquet .

devloop
15/11/2004, 14h48
atlas > il me semble que l'on ne peut lancer une application en cliquant dessus que si elle possède une interface graphique (utilisation de la XLib) toutefois c'est à vérifier

atlas
15/11/2004, 21h00
[réglé] Et bien j'ai posé exactement le meme post sur www.developpez.com dont voici la réponse

<div class='quotetop'>Citation </div>
Maintenant pour clore le topic , il faudrait me dire si il est possible de lancer le programme juste en cliquant sur l'executable .Cad la console s'ouvre automatiquement et affiche le message .

A mon avis , probable que je dois rajouter des lignes de code .

Modérateur

Sous Linux ce comportement est laissé à la libre appréciation du gestionnaire de fenêtres. Soit ça marche soit ça marche pas. A ma connaissance on peut rien y faire. Personnelement j'ai même eu un plantage du bins en faisant ça..[/b]

Pour moi , le prob est résolu ; je vais pouvoir passer à "nul level 2" (enfin si il me reste encore du courage et du temps)

lucienmathieu
16/11/2004, 15h28
Excellent devloop, mes references c++ datent de matusalem... j'ai abandonne kdevelop, c'est pas au point... ni kdesigner par la meme occassion... on ne sais pas editer les .glade generes par kdevelop... c'est triste quand meme...

Par contre atlas, tu devrais t'amuser avec les streams en general, fichiers, inpout/output/erreur standard. J'aimerai quand meme bien creer des applications avec la librairies gtk+, si vous avez de bonnes references a lire, faites moi un signe, du moins donner moi un lien.