Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
g++ quand on a deja gcc
Envoyé par: thefakir

Bonjour, j'ai une machine sur laquel ce trouve deja gcc version 3.4.6 d'installé, mais pas de g++.
Or j'en ai besoin pour compiler un petit soft.
Je suis sur une Red Hat ES release 4, et je ne sais pas commet m'y prendre pour n'installer que g++.
Un conseille saurait le bienvenue parce que la je m'en sort pas.

Merci.

Poste le Sunday 26 November 2006 21:59:27
Répondre     Citer    
Re: g++ quand on a deja gcc

Pour le langage C++, tu pourrais avoir intérêt à utiliser un g++-4.1 ou bientot 4.2 car la chaine de compilation GCC (contenant gcc, g++, gfortran, etc...) a significativement progressé pour le support de C++ entre sa version 3.4 et sa version 4.1 ou 4.2 et les versions récentes ont ajouté la compilation des fichiers d'entête (*.hh ou *.h ou *.H) ce qui accelère significativement le temps de compilation des programmes C++ même fortement templatisés; de plus les versions récentes de g++ respectent très bien les normes récentes.

Tu pourrais donc (au choix)

1. installer les paquets RPM pour g++ 4.1 pour ta distribution. J'ignore si ces paquets existent.

2. compiler GCC 4.1 ou 4.2 depuis ses sources sur [gcc.gnu.org] petit truc: configure avec l'option --program-suffix=-4.2 pour obtenir un compilateur /usr/local/bin/g++-4.2 de sorte que tu peux compiler tes programmes (supposés avec un Makefile) alternativement avec le g++ 3 de ta distribution par
make CXX=g++-3.4
et avec le g++ 4 récent par
make CXX=g++-4.2
(mais n'oublie pas de faire un make clean entre les deux).

3. compiler un snapshot SubVersion de GCC. L'avantage est d"avoir des traits experimentaux (support tentatif de C++ 200x) et l'inconvenient est une potentielle instabilité du compilateur.

N'oublie pas que tu peux avoir plusieurs compilateurs différents de C++ et que tu peux basculer de l'un à l'autre. Par exemple, les compilateurs les plus récents auront probablement un meilleur diagnostic!


Je suis très intéressé à savoir ce que tu feras, car je travaille sur GCC en ce moment. La compilation de GCC depuis ses sources est longue (une ou plusieurs heures selon la puissance de la machine) et il est très utile (si tu as un bi-core ou multi-processeur) de compiler avec make -j3 ou mieux.

Si tu compiles les sources de GCC, n'hesites pas à me demander de l'aide.





----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Sunday 26 November 2006 23:12:23
Répondre     Citer    
Re: g++ quand on a deja gcc

Pour un exemple de temps de compilation de GCC, voir [starynkevitch.net]

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Sunday 26 November 2006 23:36:10
Répondre     Citer    
Re: g++ quand on a deja gcc
Envoyé par: thefakir

Salut,
merci pour la réponse rapide.
Pour se qui est des perf j'en ai pas vraiment besoin c'est juste que là il me faut compiler un tout petit truc et je suis confronté au probleme mais c'est noté smiling smiley.

Sinon effectivement je sais que l'on peut avoir plusieurs version de gcc c'est pourquoi comme je trouvais pas le moyen de rajouter g++,j'avais entamé la compilation de gcc4.1

Mais là encore probléme la compilation ne passe pas, et les messages d'erreurs ne sont pas super explicite...

Voila un extrait des erreurs:
WARNING: `makeinfo' is missing on your system.  You should only need it if
         you modified a `.texi' or `.texinfo' file, or any other file
         indirectly affecting the aspect of the manual.  The spurious
         call might also be the consequence of using a buggy `make' (AIX,
         DU, IRIX).  You might want to install the `Texinfo' package or
         the `GNU make' package.  Grab either from any GNU archive site.
make[3]: *** [fastjar.info] Error 1
make[3]: Leaving directory `/usr/local/tmp/gcc-4.1.0/host-i686-pc-linux-gnu/fastjar'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/local/tmp/gcc-4.1.0/host-i686-pc-linux-gnu/fastjar'
make[1]: *** [all-fastjar] Error 2
make[1]: *** Waiting for unfinished jobs....
gcc -c -g -O2  -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -pedantic -Wno-long-long   -DHAVE_CONFIG_H -I. -I../.././fixincludes -I../include -I../.././fixincludes/../include ../.././fixincludes/fixtests.c
In file included from ../.././fixincludes/fixincl.c:101:
../.././fixincludes/fixincl.x:76: warning: string length `4662' is greater than the length `509' ISO C89 compilers are required to support
../.././fixincludes/fixincl.x:224: warning: string length `552' is greater than the length `509' ISO C89 compilers are required to support
../.././fixincludes/fixincl.x:269: warning: string length `532' is greater than the length `509' ISO C89 compilers are required to support
../.././fixincludes/fixincl.x:313: warning: string length `808' is greater than the length `509' ISO C89 compilers are required to support
../.././fixincludes/fixincl.x:399: warning: string length `5139' is greater than the length `509' ISO C89 compilers are required to support
../.././fixincludes/fixincl.x:2419: warning: string length `729' is greater than the length `509' ISO C89 compilers are required to support
../.././fixincludes/fixincl.x:7223: warning: string length `575' is greater than the length `509' ISO C89 compilers are required to support
gcc -c -g -O2  -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -pedantic -Wno-long-long   -DHAVE_CONFIG_H -I. -I../.././fixincludes -I../include -I../.././fixincludes/../include ../.././fixincludes/fixfixes.c
gcc -c -g -O2  -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -pedantic -Wno-long-long   -DHAVE_CONFIG_H -I. -I../.././fixincludes -I../include -I../.././fixincludes/../include ../.././fixincludes/server.c
gcc -c -g -O2  -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -pedantic -Wno-long-long   -DHAVE_CONFIG_H -I. -I../.././fixincludes -I../include -I../.././fixincludes/../include ../.././fixincludes/procopen.c
gcc -c -g -O2  -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -pedantic -Wno-long-long   -DHAVE_CONFIG_H -I. -I../.././fixincludes -I../include -I../.././fixincludes/../include ../.././fixincludes/fixlib.c
gcc -c -g -O2  -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -pedantic -Wno-long-long   -DHAVE_CONFIG_H -I. -I../.././fixincludes -I../include -I../.././fixincludes/../include ../.././fixincludes/fixopts.c
srcdir="../.././fixincludes" /bin/sh ../.././fixincludes/mkfixinc.sh i686-pc-linux-gnu
sed -e 's/@gcc_version@/4.1.0/' < mkheaders.almost > mkheadersT
mv -f mkheadersT mkheaders
gcc -g -O2   -o fixincl fixincl.o fixtests.o fixfixes.o server.o procopen.o fixlib.o fixopts.o ../libiberty/libiberty.a
echo timestamp > full-stamp
make[2]: Leaving directory `/usr/local/tmp/gcc-4.1.0/host-i686-pc-linux-gnu/fixincludes'
make[1]: Leaving directory `/usr/local/tmp/gcc-4.1.0'
make: *** [all] Error 2

Mais peut il est possible de lui dire de pas forcement tout compiler, typiquement java ou Ada j'en ai pas besoin.
merci.

Poste le Monday 27 November 2006 00:19:05
Répondre     Citer    
Re: g++ quand on a deja gcc

Il faut effectivement installer texinfo (et c'est vrai pour la compilation d'autres GNUseries).

Citation
thefakir
Mais peut il est possible de lui dire de pas forcement tout compiler, typiquement java ou Ada j'en ai pas besoin.
oui par l'option --enable-languages=c,c++ à configure.

N'oublie pas qu'il ne faut pas compiler GCC dans ses sources. Donc par exemple
tar xzvf gcc-4.1.1.tar.gz
mkdir _GccBuild
cd _GccBuild
../gcc-4.1.1/configure --disable-multlib --enable-languages=c,c++ --program-suffix=-4.1
make -j3 bootstrap

ensuite au bout d'au moins une heure tu peux faire un sudo make install


----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Monday 27 November 2006 08:15:26
Répondre     Citer    
Re: g++ quand on a deja gcc

C'était --disable-multilib qu'il fallait lire

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Monday 27 November 2006 08:35:39
Répondre     Citer    
Re: g++ quand on a deja gcc
Envoyé par: thefakir

arghh!!! Ce veut pas, ca veut pas....sad smiley
J'ai suivi ta marche a suivre. Et installé texinfo.
Mais le make passe toujours pas :'(

j'obtiend ce message:
make[2]: Entering directory `/usr/local/tmp/_GccBuild/gcc'
make[2]: *** No rule to make target `../../build-i686-pc-linux-gnu/libiberty/libiberty.a', needed by `build/genmodes'.  Stop.
make[2]: Leaving directory `/usr/local/tmp/_GccBuild/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/usr/local/tmp/_GccBuild'
make: *** [all] Error 2

Poste le Monday 27 November 2006 21:13:33
Répondre     Citer    
Re: g++ quand on a deja gcc

Citation
thefakir
arghh!!! Ce veut pas, ca veut pas....sad smiley

A partir de quels sources exacts et avec quels arguments à configure? Décris en détail les commandes tapées, merci!


----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Monday 27 November 2006 23:01:06
Répondre     Citer    
Re: g++ quand on a deja gcc
Envoyé par: thefakir

Alors les source exacte c'est les 4.1.0 (je suis en train d'uploader les 4.1.1 pour voir si c'est pas mieux...)
Et les commandes sont:

tar xzvf gcc-4.1.0.tar.gz
mkdir _GccBuild
cd _GccBuild
../gcc-4.1.1/configure --enable-languages=c,c++ --program-suffix=-4.1
make
Tu peux voir l'integralité de la compilation: [bewie.org]

Poste le Monday 27 November 2006 23:17:17
Répondre     Citer    
Re: g++ quand on a deja gcc
Envoyé par: thefakir

smiling smiley
Ca y est!!!
Je viens de refaire la même chose avec la version 4.1.1 et c'est passé comme du p'tit lait...
Merci beaucoup pour les renseignements et les explications!!

Poste le Monday 27 November 2006 23:42:59
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
g++ quand on a deja gcc
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons