La compilation a échoué. Object reference not set to an instance of an object

cadetspif Messages postés 5 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 12 décembre 2009 - 10 déc. 2009 à 01:02
cadetspif Messages postés 5 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 12 décembre 2009 - 12 déc. 2009 à 15:44
Bonjour, voici le message d'erreur que j'obtiens quand j'execute mon projet.
Il s'agit du 'Hello World' par défaut quand je crée un projet C++ avec Monodevelop sur une debian lenny ppc. j'ai installé g++-4.3.
(Je débute, ça se voit ?)

10 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
10 déc. 2009 à 01:33
Fais voir le code exact.
Que se passe-t-il si tu le compile dans un terminal ?
g++ -W -Wall - pedantic fichier.cc -o prog

Si tu veux faire du C++, Monodevelop n'est pas être pas le mieux (c'est bien pour du C#, pour le C++, je suis dubitatif). Je préfère de loin, et par ordre de préférence:
- emacs (un peu déroutant pour un débutant)
- QTcreator (Excellent, mais peut être un peu trop orienté QT).
- Eclipse avec plugin CDT. (Pas mal du tout pour un débutant).
0
cadetspif Messages postés 5 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 12 décembre 2009
10 déc. 2009 à 21:11
// project created on 08/12/2009 at 21:58
#include <stdio.h>

int main (int argc, char *argv[])
{
printf ("salut\n");

return 0;
}

De toute façon, je vais adopter eclipse. (emacs pour linux est juste un éditeur de texte, non ?)
"apt-get install eclipse" instellera tout ce qu'il faut ?

Ps : Faut-il que je clique sur "réponse acceptée" ?
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
10 déc. 2009 à 21:35
emacs pour linux est juste un éditeur de texte

Bien plus que ça ! C'est un éditeur de code qui peut s'interfacer avec n'importe quoi. J'édite mon code, je le débug et je le lance dans emacs !
Tout est configurable, et le comparer à un simple éditeur de texte serait un peu abusé. On peut coder en lisp autant de fonctionnalité à lui ajouter que l'on veut (ou en reprendre des existantes). Je travail sous emacs depuis plus de 4 ans, et je ne compte pas passer à Eclipse, c'est qu'il y a une raison, non ? Mais bon je suis hors sujet :)

Je te conseille de ne pas utiliser les IDE du dépôts, ils ne sont généralement pas à jour. Télécharge Eclipse + le plugin CDT, ou bien tu installes QTcreator (pas obligé de faire du QT) et tu crées un projet vide. Il te génère alors un makefile et ne te fais rien en rapport avec QT. Tu peux alors créer de nouveaux fichiers dans le projet dans lequel tu fais du C+. Tu peux heureusement utiliser cet IDE normalement (le débugger est pas mal).
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
10 déc. 2009 à 21:37
J'oubliais, avant de changer d'éditeur, écrit le code suivant dans un fichier texte:

#include 

int main()
{
  std::cout << "Hello world" << std::endl;

  return 0;
}


Ensuite, enregistres ce fichier et tape dans un terminal:


g++ fichier.cc


Si ça fonctionne et te crée un fichier exécutable "a.out", c'est que tout va bien. Sinon, il te faut installer gcc.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
11 déc. 2009 à 09:28
Eclipse est beaucoup plus orienté java. J'ai déjà fait du dév C++ et java avec cet IDE.

CptPingu, il débute, emacs est-il vraiment fait pour les débutant ? Peut-être que oui, si on prend le temps de comprendre.
"IDE du dépôts" ca veut dire quoi ?
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
11 déc. 2009 à 09:58
Eclipse est beaucoup plus orienté java.

Clairement, c'est la raison pour laquelle, je lui conseille plutôt QTCreator.

CptPingu, il débute, emacs est-il vraiment fait pour les débutant ? Peut-être que oui, si on prend le temps de comprendre.

Clairement, non. Il faut pas mal d'investissement pour apprendre à en bien l'exploiter. Je lui propose d'ailleurs surtout Eclipse ou QTCreator.

"IDE du dépôts" ca veut dire quoi ?

Je veux dire par là qu'il doit aller chercher les derniers binaires sur les sites officiels, plutôt que de prendre ces des dépôts de sa distribution. Par exemple, sur une Debian, ne pas faire un apt-get install, mais aller chercher les binaires soit même. Les dépôts sont souvent en retard. QTCreator, sur Ubuntu 9.04 en est à sa version 1.0.0, alors qu'il existe la version 1.3.0, vraiment plus évolué.
0
cadetspif Messages postés 5 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 12 décembre 2009
11 déc. 2009 à 22:09
Je n'ai pas trouvé sur le site de version pour linux ppc de qtcréator.

En résumé, pouvez-vous m'orienter sur le choix d'une IDE (ou en ligne de commande ?) ?

pour programmer en C++
débutant mais prêt à s'investir
Lenny PPC (ibook G4 12" 1,125 Go)
0
cadetspif Messages postés 5 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 12 décembre 2009
12 déc. 2009 à 12:17
S3P:/home/eric# gcc hello.cpp
/tmp/ccIyyiIS.o: In function `main':
hello.cpp:(.text+0x16): undefined reference to `std::cout'
hello.cpp:(.text+0x1a): undefined reference to `std::cout'
hello.cpp:(.text+0x24): 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*)'
hello.cpp:(.text+0x32): 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> >&)'
hello.cpp:(.text+0x36): 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> >&)'
hello.cpp:(.text+0x38): 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> >&))'
/tmp/ccIyyiIS.o: In function `__static_initialization_and_destruction_0(int, int)':
hello.cpp:(.text+0xa0): undefined reference to `std::ios_base::Init::Init()'
hello.cpp:(.text+0xa6): undefined reference to `std::ios_base::Init::~Init()'
hello.cpp:(.text+0xaa): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccIyyiIS.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status

Pas glop ?
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
12 déc. 2009 à 14:51
Version linux de QT:
http://qt.nokia.com/downloads/sdk-linux-x11-32bit-cpp

C'est g++ et non gcc.
0
cadetspif Messages postés 5 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 12 décembre 2009
12 déc. 2009 à 15:44
CptPingu, le lien que tu me donnes est pour i86. Je l'ai d'ailleurs installé su mon fixe (ubuntu) et ça marche très bien. Mais mon portable n'a pas un processeur intel mais PPC. Il ne marche pas dessus.
0
Rejoignez-nous