Probleme de version gcc [compliqué]

Résolu
Bonjour, je travail en ce moment sur un projet developper en c++ qui avant etait compiler avec gcc4.2.2 sous un mandrake.
Moi je suis passé a un kubuntu 9.10 ou le compilateur installé est gcc 4.4.1
Les erreurs que j'avait a la compilation etaient du a des include manquant: (cstdlib par exemple pour les exit() qui n'est plus inclu dans iostream)
J'ai corrigé ces erreurs mon code compile mais il y a des chose etrange qui se passe par exemple j'ai une valeur de retour de 139 alors que mon code (26 000 lignes) ne comporte que des exit() exit(0) exit(-1) exit(1) ou exit(2)

Je voulais savoir si il y a autre chose a faire que rajouter les include manquant pour le portage du code de gcc 4.2.2 a gcc 4.4.1.

Et autre question je voudrais savoir si il est possible d'installer gcc 4.2.2 sans desinstaler la version a jours et pouvoir choisir l'un ou l'autre pour la compilation et si oui comment il faut faire.
Merci d'avance de votre aide n'hesitez pas a me demander si vous avez besoin de plus d'information.

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    hello
    un exit() peut retourner n'importe quelle valeur. mets-en une.
    1. Contributeur
      pour le exit(-1), c'est très possible
      une possibilité c'est d'aller chercher le compilateur et prendre le fichier tar.gz, et l'extraire dans un répertoire, par ex. gcc422
      et utiliser gcc422/bin, gcc422/lib, etc pour la compilation
      1. Contributeur
        créer un répertoire, par ex. /home/nom/gcc422
        exécuter
        ./configure --prefix=/home/nom/gcc422
        make
        1. Merci de ta réponse.
          Voila je n'ai plus que des exit -1 0 1 ou 2
          mais j'ai tjr ce code de retour 139

          Voila le code présent dans mon interface java qui lance un exe en c++
          J'avais prevenu c'est pas un projet trés simple ^^

          java.lang.Process process = runTime.exec(temp); 
          System.out.println("Code de retour : " + process.waitFor()); 
          


          Serait il possible que ce soit les exit(-1) qui me renvoie 139? (pour une histoire d'unsigned int ou je ne sais quoi?)

          Sinon quelqu'un a une idée pour que je puisse compilé ac gcc 4.2.2 sans desinstaller la version 4.4.1
          1. Ok,
            C'est justement sur cette procedure que j'ai besoin d'un peu plus d'info. (Je suis pas vraiment au point niveau compilation.)
            J'ai extrait l'archive dans un dossier mais je ne sais pas comment l'utiliser sans pour autant l'installer (de peur que ça m'ecrase la nouvelle version)
            pour info voila ce que le dossier contient

            ABOUT-NLS           compile       configure     FAQ          INSTALL       libdecnumber  libmudflap       ltcf-c.sh    maintainer-scripts  mkdep           symlink-tree
            boehm-gc            config        configure.in  faq.html     install-sh    libffi        libobjc          ltcf-cxx.sh  Makefile.def        mkinstalldirs   ylwrap
            BUGS                config.guess  contrib       fixincludes  intl          libgfortran   libssp           ltcf-gcj.sh  Makefile.in         move-if-change  zlib
            bugs.html           config-ml.in  COPYING       gcc          LAST_UPDATED  libgomp       libstdc++-v3     ltconfig     Makefile.tpl        NEWS
            ChangeLog           config.rpath  COPYING.LIB   gnattools    libada        libiberty     libtool-ldflags  ltmain.sh    MD5SUMS             README
            ChangeLog.tree-ssa  config.sub    depcomp       include      libcpp        libjava       libtool.m4       MAINTAINERS  missing             README.SCO
            
            


            Merci de ton aide
            1. Contributeur
              j'ai oublié la suite
              make install
              ensuite pour compiler
              changer les PATH
              export PATH=/home/nom/gcc422/bin:$PATH
              export LD_LIBRARY_PATH=/home/nom/gcc422/lib:$LD_LIBRARY_PATH
              pour la compilation, changer les locations des include et des lib
              -I/home/nom/gcc422/include
              -L/home/nom/gcc422/lib