Monodevelop : pb de compilation avec g++
Résolu
Bonjour,
pour entrer dans le vif du sujet, je voudrais savoir pourquoi Monodevelop me dit "Compiler not found: g++" lors de la première utilisation sur un programme basique en c++ . Il ne m'a jamais demandé où trouver le fichier pour compiler (comme javac.exe pour Java, le seul language de prog que je connaisse à l'heure actuelle ^^) et je ne sais pas où le lui donner, je ne sais d'ailleurs pas où le trouver moi-même.
Merci de votre aide et demandez moi si vous avez besoin de plus de détails,
pour entrer dans le vif du sujet, je voudrais savoir pourquoi Monodevelop me dit "Compiler not found: g++" lors de la première utilisation sur un programme basique en c++ . Il ne m'a jamais demandé où trouver le fichier pour compiler (comme javac.exe pour Java, le seul language de prog que je connaisse à l'heure actuelle ^^) et je ne sais pas où le lui donner, je ne sais d'ailleurs pas où le trouver moi-même.
Merci de votre aide et demandez moi si vous avez besoin de plus de détails,
9 réponses
#include <iostream.h> void main() { cout << "Bienvenue" << endl; }
Oulà alors on va oublier l'écriture du C++ d'il y a vingt ans et réécrire ça proprement :-) Aujourd'hui les headers de la STL de prennent plus de .h et toutes les classes sont dans le namespace std. De plus main est sensé retourner un code d'exécution (0 si tout va bien). Ce qui donne :
#include <iostream> int main(){ std::cout << "Bienvenue" << std::endl; return 0; }
Si tu n'aimes pas les std:: et si tu es dans un fichier .cpp tu peux écrire :
#include <iostream> using namespace std; int main(){ cout << "Bienvenue" << endl; return 0; }
Bonne chance
De plus, je ne comprends pas pourquoi le main ne peut pas être void. Quel intêret de le forcer à renvoyer une valeur ? Et est ce qu'il peut renvoyer autre chose (un string, par exemple) ?
C'est une convention. Si tu lances ton programme C/C++ depuis un script par exemple, il récupère un code d'exécution qui est un int. Mais en pratique rien n'empêche d'avoir un main qui retourne void.
Le code que je t'ai donné marche (en tout cas sous linux), si tu as un problème c'est sûrement ton compilateur qui est mal installé ou mal configuré :
En terme de paquet voilà ce que j'ai installé : libc6, libc6-dev, libc6-i686, gcc, et g++
Bonne chance
C'est une convention. Si tu lances ton programme C/C++ depuis un script par exemple, il récupère un code d'exécution qui est un int. Mais en pratique rien n'empêche d'avoir un main qui retourne void.
Le code que je t'ai donné marche (en tout cas sous linux), si tu as un problème c'est sûrement ton compilateur qui est mal installé ou mal configuré :
(mando@aldur) (~) $ cat pouet.cpp #include <iostream> int main(){ std::cout << "Bienvenue" << std::endl; return 0; } (mando@aldur) (~) $ g++ -W -Wall -o plop pouet.cpp (mando@aldur) (~) $ ./plop Bienvenue (mando@aldur) (~) $
En terme de paquet voilà ce que j'ai installé : libc6, libc6-dev, libc6-i686, gcc, et g++
Bonne chance
Ben là s'il cherche g++ c'est que tu lui as dit que ton programme était écrit en C++. Du coup il cherche un compilateur C++ (ici g++) qu'il ne trouve pas, ce qui est logique si tu ne l'as pas installé. Pour développer en java tu peux utiliser directement eclipse, bluej, ... où tout faire à la main avec un
- éditeur texte (vim, emacs, nedit...)
- make ou ant
- javac et java
Bonne chance
- éditeur texte (vim, emacs, nedit...)
- make ou ant
- javac et java
Bonne chance
Merci !!! J'ai trouvé la solution ... Comme tu l'as dit, il fallait installer g++ (ce que j'ai fait avec la commande " sudo apt-get install g++ ") ce qui m'a d'ailleurs étonné étant donné que je croyais que g++ était installé d'office ssur Ubuntu 8.04. Enfin bref, le résultat est tout de même le bon :p
En ce qui concerne Java, pas de problème puisque je développe avec ce langage depuis 2 ans sur JDevelopper (dans le cadre de mon école)
Sinon, je rencontre un autre problème maintenant que je peux compiler. Sur un petit programe à la con :
#include <iostream.h>
void main()
{
cout << "Bienvenue" << endl;
}
j'obtiens la réponse suivante :
Compilation du projet: essaiUn (Debug)
La compilation a échoué. Object reference not set to an instance of an object
Dites moi si je dois éditer un nouveau post pour ce nouveau problème. Sinon dites moi ce qui cloche et comment y remédier (partez du fait que je connais rien DU TOUT à C++, ça ira plus vite... ;)
Merci d'avance
En ce qui concerne Java, pas de problème puisque je développe avec ce langage depuis 2 ans sur JDevelopper (dans le cadre de mon école)
Sinon, je rencontre un autre problème maintenant que je peux compiler. Sur un petit programe à la con :
#include <iostream.h>
void main()
{
cout << "Bienvenue" << endl;
}
j'obtiens la réponse suivante :
Compilation du projet: essaiUn (Debug)
La compilation a échoué. Object reference not set to an instance of an object
Dites moi si je dois éditer un nouveau post pour ce nouveau problème. Sinon dites moi ce qui cloche et comment y remédier (partez du fait que je connais rien DU TOUT à C++, ça ira plus vite... ;)
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai essayé tes deux propositions mais aucune des deux ne marche et je reçois toujours le même message d'erreur que précédemment.
De plus, je ne comprends pas pourquoi le main ne peut pas être void. Quel intêret de le forcer à renvoyer une valeur ? Et est cce qu'il peut renvoyer autre chose (un string, par exemple) ?
De plus, je ne comprends pas pourquoi le main ne peut pas être void. Quel intêret de le forcer à renvoyer une valeur ? Et est cce qu'il peut renvoyer autre chose (un string, par exemple) ?
j'ai vérifé que tous les package étaient bien tous installés (ce qui était le cas) et j'ai lancé les même commandes que toi. Résultat : ça marche avec le shell (ouf... :) !!! Donc l'erreur vient de Monodevelop et pour trouver la faille, je vais bien rigoler (moins ouf tout de suite... T_T).
En tout cas, merci pour ton aide ^^
En tout cas, merci pour ton aide ^^
Ok alors par contre monodevelop je ne connais pas du tout, mais manifestement c'est ton compilateur qui est mal configuré. Sinon il y a d'autres environnement de développement qui sont sympathiques, comme par exemple kdevelop si tu es sous KDE.
Bonne chance
Bonne chance
Ca se voit que tu connais pas Monodevelop étant donné qu'il est destiné et développé pour tourner sur Gnome ^^
Mais je vais voir si je peux pas trouver une solution. Sinon je pense me tourner vers Eclipse avec l'add-on pour C/C++. Je te tiendrais au courant si tu le veux sinon je clôture cette discussion.
Mais je vais voir si je peux pas trouver une solution. Sinon je pense me tourner vers Eclipse avec l'add-on pour C/C++. Je te tiendrais au courant si tu le veux sinon je clôture cette discussion.