Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2036 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Passage sous linux : j arrive meme pas a compiler un hello world :/

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Passage sous linux : j arrive meme pas a compiler un hello world :/

n°660688
xiluoc
un pc pour les unirs ....
Posté le 02-03-2004 à 11:04:48  profilanswer
 

:hello: ,
ce semester toute la programmation c++ se passe sous unix donc pendant les vacances je suis passe a linux debian pour me former.
bref..
 
version gcc 3.3.3
 

Code :
  1. #include <iostream>
  2. using namespace std;
  3. int main ()
  4. {
  5.        cout << "hello world" << endl;
  6. }


 
suivit d un gcc monprog.cpp
 

Code :
  1. gcc bug.cpp
  2. /tmp/ccDisKJM.o(.text+0x1b): dans la fonction « main »:
  3. : undefined reference to `std::cout'
  4. /tmp/ccDisKJM.o(.text+0x20): dans la fonction « main »:
  5. : undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
  6. /tmp/ccDisKJM.o(.text+0x28): dans la fonction « main »:
  7. : undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >& )'
  8. /tmp/ccDisKJM.o(.text+0x30): dans la fonction « main »:
  9. : undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >& ))'
  10. /tmp/ccDisKJM.o(.text+0x59): dans la fonction « __static_initialization_and_destruction_0(int, int)»:
  11. : undefined reference to `std::ios_base::Init::Init[in-charge]()'
  12. /tmp/ccDisKJM.o(.text+0x8a): dans la fonction « __tcf_0 »:
  13. : undefined reference to `std::ios_base::Init::~Init [in-charge]()'
  14. /tmp/ccDisKJM.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
  15. collect2: ld a retourné 1 code d'état d'exécution
  16. zsh: exit 1     gcc bug.cpp


 
    [:dams86]

mood
Publicité
Posté le 02-03-2004 à 11:04:48  profilanswer
 

n°660689
kadreg
profil: Utilisateur
Posté le 02-03-2004 à 11:05:33  profilanswer
 

Pour faire simple :  
g++ monprog.cpp


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°660691
xiluoc
un pc pour les unirs ....
Posté le 02-03-2004 à 11:07:32  profilanswer
 

   [:dams86]  
je pars me cacher...
 
mais gcc c quoi alors ?

n°660692
kadreg
profil: Utilisateur
Posté le 02-03-2004 à 11:08:11  profilanswer
 

Gnu compiler  Collection.
 
En fait g++ est équiivalent à gcc -lstdc++


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°660695
xiluoc
un pc pour les unirs ....
Posté le 02-03-2004 à 11:14:47  profilanswer
 

ah d accord merci.
sinon pour compiler j avais lu quil y avait queque option a rajouter pour en rapport avec les warning.
 
genre g++ -lstdc++ -std ect..
j ai un peu d emal avec les centaines d option du man g++ :/

n°661550
ganjo
Posté le 02-03-2004 à 22:19:20  profilanswer
 

pour avoir tous les warning ?
cest -Wall (Warning all)

n°661560
Kristoph
Posté le 02-03-2004 à 22:37:40  profilanswer
 

ganjo a écrit :

pour avoir tous les warning ?
cest -Wall (Warning all)


 
L'option -Wall est tellement bien nommee qu'elle n'active pas tous les warnings en fait :)

n°662351
blackgodde​ss
vive le troll !
Posté le 03-03-2004 à 23:36:38  profilanswer
 

si taz etait la, il dirait
cout << "Hello world\n";
et pas  
cout << "hello world" << endl;
:)


---------------
-( BlackGoddess )-
n°662389
xiluoc
un pc pour les unirs ....
Posté le 04-03-2004 à 02:48:46  profilanswer
 

non il dirait cout << "hello world" << flush;
:P

n°673090
gorgologo
Posté le 14-03-2004 à 10:56:30  profilanswer
 

salut à tous!
moi je viens de commencer c++ et j'utilise bloodshed devc++pour compiler et quand je compile ce code tout simple:

Code :
  1. #include<iostream>
  2. int main()
  3. {
  4.     std::cout<<"bonjuor!\n";
  5.     return 0;
  6.     }


cam'affiche une fenetre dos avec marqué bonjour dedans, mais c completement subliminal : la fentre s'ouvre et de referme un un millieme de seconde !! pour quoi la fenetre dos ne reste elle pas ouverte?
merci !

mood
Publicité
Posté le 14-03-2004 à 10:56:30  profilanswer
 

n°673092
cassidy
Black Rainbow
Posté le 14-03-2004 à 10:59:16  profilanswer
 

parce que ton prog rend la main et que windows ferme la fenetre.
Lance le dans un prompt directement.
 
PS: tu peux utiliser endl à la place des \n en C++

n°673096
TotalRecal​l
Posté le 14-03-2004 à 11:07:07  profilanswer
 

gorgologo a écrit :

salut à tous!
moi je viens de commencer c++ et j'utilise bloodshed devc++pour compiler et quand je compile ce code tout simple:

Code :
  1. #include<iostream>
  2. int main()
  3. {
  4.     std::cout<<"bonjuor!\n";
  5.     return 0;
  6.     }


cam'affiche une fenetre dos avec marqué bonjour dedans, mais c completement subliminal : la fentre s'ouvre et de referme un un millieme de seconde !! pour quoi la fenetre dos ne reste elle pas ouverte?
merci !


tu dois exécuter ton prog depuis une console dos (ouvrir les commandes msdos, utiliser cd .. et cd xxx pour aller là où se trouve ton .exe et le lancer de là), ou bien placer un getch(); à la fin de ton code (et ajouter #include <stdio.h> ), ce qui aura pour effet de te demander d'appuyer sur une touche avant de fermer.
 
edit : getch est dans conio, pas stdio


Message édité par TotalRecall le 14-03-2004 à 11:08:21

---------------
Topic .Net - C# @ Prog
n°673153
Taz
bisounours-codeur
Posté le 14-03-2004 à 12:55:39  profilanswer
 

ou bien placer un getch(); à la fin de ton code (et ajouter #include <stdio.h>
 
ou pas vu que getch() est pas standard :o

n°673156
TotalRecal​l
Posté le 14-03-2004 à 13:01:28  profilanswer
 

Taz a écrit :

ou bien placer un getch(); à la fin de ton code (et ajouter #include <stdio.h>
 
ou pas vu que getch() est pas standard :o


le but c'était de faire simple pusique il débute [:aloy]
maintenant c'est sûr que on peut faire beaucoup mieux et plus propre. Mais on peut aussi faire pire, j'aurai pu lui suggérer un SYSTEM(Pause); :whistle:


---------------
Topic .Net - C# @ Prog
n°673157
Taz
bisounours-codeur
Posté le 14-03-2004 à 13:13:50  profilanswer
 

TotalRecall a écrit :


le but c'était de faire simple pusique il débute [:aloy]
maintenant c'est sûr que on peut faire beaucoup mieux et plus propre. Mais on peut aussi faire pire, j'aurai pu lui suggérer un SYSTEM(Pause); :whistle:

la solution simple cai de lui dire ce qui marche et ce qui marche pas, pas de foutre en l'air ces bases dès le début

n°673178
skelter
Posté le 14-03-2004 à 14:16:58  profilanswer
 

et cin.get() ?

n°673183
nico41
Posté le 14-03-2004 à 14:23:59  profilanswer
 

#include <iostream>  
  using namespace std;
 
#include <iostream>
int main ()
 
tu utilise l' objet cout une seul fois pourquoi pas mettre tout simplement std::cout <<
nico le boulanger

n°673255
gorgologo
Posté le 14-03-2004 à 16:32:16  profilanswer
 

merci les gars !
en fait à la fin juste avant le return 0; j'ai fait :

Code :
  1. int h;
  2. std::cin >> h;


donc la j'ai une invite de commande ou je sais pas comment ca s'apelle...
y a certainement mieux...mais bon je débute !
merci !

n°673298
HelloWorld
Salut tout le monde!
Posté le 14-03-2004 à 17:32:33  profilanswer
 

cin.ignore() ou scanf("%*d" )


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°673324
TotalRecal​l
Posté le 14-03-2004 à 17:43:02  profilanswer
 

Taz a écrit :

la solution simple cai de lui dire ce qui marche et ce qui marche pas, pas de foutre en l'air ces bases dès le début


je m'attendais à ce genre de remarques, mais je vois pas en quoi le fait d'utiliser ça une fois juste pour contourner un petit problème va "foutre ses bases en l'air" :sarcastic:
bref, fermons la parenthèse.


Message édité par TotalRecall le 14-03-2004 à 17:43:24

---------------
Topic .Net - C# @ Prog
n°673325
Taz
bisounours-codeur
Posté le 14-03-2004 à 17:46:21  profilanswer
 

parce que tu lui balances ça sans lui dire ce que ça implique.

n°673407
gorgologo
Posté le 14-03-2004 à 19:24:53  profilanswer
 

en fait j'ai acheté un gros bouquin que je prend depuis le début et je compte le faire jusqu'à la fin avec tout ses exercices et tout...donc pour ce qui est des bases j'espere que je me donne les moyens de les apprendre...
en tout cas c quoi : #include <stdio.h> , c pou inclure une nouvelle librairie ? et la fonction getch() sert à quoi dans ce cas la?
voila juste pour info puisque tu m'en a parlé TotalRecall...
merci encore....
et a bientot, je sens que des questions cons comme celles la je risque d'en poser souvent...meme si j'essaie d'abord de m'en sortir par moi meme c'est pas toujours facile...

n°673427
TotalRecal​l
Posté le 14-03-2004 à 19:47:14  profilanswer
 

tu sais, l'inclusion des headers est vraiment quelque chose de fondamental, tu ferais aussi bien de regarder ton bouquin pour voir tout de suite ce que c'est.
Getch attend que tu tapes quelque chose au clavier. Elle n'envoie ni valeur de retour, et n'exige as d'argument : c'est pour ça que je t'ai donné ça comme solution, y a pas plus simple, même si il y a mieux.


---------------
Topic .Net - C# @ Prog
n°673454
skelter
Posté le 14-03-2004 à 20:14:07  profilanswer
 

si ya une valeur de retour, getch renvoi le caracter taper

n°673468
TotalRecal​l
Posté le 14-03-2004 à 20:31:53  profilanswer
 

skelter a écrit :

si ya une valeur de retour, getch renvoi le caracter taper


encore heureux, mais on est pas obligé de l'utiliser. (jmemmele entre getchar, getch et cie, faudra que je jette un oeil à ça)


---------------
Topic .Net - C# @ Prog
n°674739
xiluoc
un pc pour les unirs ....
Posté le 16-03-2004 à 01:35:03  profilanswer
 

include <cstdlib>
.
.
.
.
.
 
 
system("pause" ); // ou SYSTEM ("pause)

n°796529
traiangueu​l
Posté le 15-07-2004 à 15:57:31  profilanswer
 

Salut!
JE voudrais rapporter un peu d'eau au moulin et avoir votre avis sur un point:
 
Je fais exactement la mme chose que xiluoc a savoir:
#include <iostream>  
  using namespace std;  
   
  int main ()  
  {  
           cout << "hello world" << endl;  
     
  }  
 
La seul différence visiblemen c'est que moi je suis sur HP11
Le prog compile mais ne link pas.
 
ld: Unrecognize argument : +init
 
 
Quelqu'un a t'il une idée?
 
Seb

n°796538
kadreg
profil: Utilisateur
Posté le 15-07-2004 à 15:59:20  profilanswer
 

tu peux faire un ld --version, je soupsonne que ce ne soit pas le bon linkeur qui est appelé


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°796608
traiangueu​l
Posté le 15-07-2004 à 16:24:16  profilanswer
 

ca marche pas:
toujours un argument inconu.
Je n'ai pas trouvé de version dans le man non plus.
 
C'est étrange!!
 
ld n'est pas sensé être installé avec gcc?
Parce que le gcc a été réinstallé récemment alors j'ose espérer que le ld est a jour mais comme ca chie, je me dis que c'est peut etre pas le cas.
 

n°797489
traiangueu​l
Posté le 16-07-2004 à 11:44:50  profilanswer
 

Pour info:
j'ai installé le patch PHSS_30966 et maitenant ca marche.
Ct bien un pbm de version de ld....
 

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Passage sous linux : j arrive meme pas a compiler un hello world :/

 

Sujets relatifs
Kylix ne veux rien compilerProblème pour compiler (erreur)
j arrive pas a avancer dans ma video WMV de mon site web[TomCat] J'arrive pas a démarrer le serveur
Problèmes de passage de pointeur en paramètre[C#] j'arrive pas à passer mes varibles par reference.. :'(
Passage de pointeurs en paramètre erronés !Script PHP exportant un bdd ACCESS (Linux)
equivalent à JCreator sous Linux ?Erreur lib graphique linux
Plus de sujets relatifs à : Passage sous linux : j arrive meme pas a compiler un hello world :/


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR