OVH Cloud OVH Cloud

compatibilité en compilation avec g++

2 réponses
Avatar
kamal
Bonjour,

j'ai compilé un programme en C++ sous g++ 3.2 (linux MDK 9.0), quand je
l'utilise sur une autre machine possédant une version 2.96 de g++ (MDK
8.0) je reçois le message suivant :

./mon_prog: error while loading shared libraries: libstdc++.so.5:
cannot open shared object file: No such file or directory

Comment compiler des programmes sur ma machine qui marcheraient sur
toute autre machine ?

Merci

2 réponses

Avatar
Richard Delorme
kamal wrote:

Bonjour,

j'ai compilé un programme en C++ sous g++ 3.2 (linux MDK 9.0), quand je
l'utilise sur une autre machine possédant une version 2.96 de g++ (MDK
^^^^^^^^^^^^

C'est pour me faire troller sur les versions de gcc qui n'existent pas
officiellement ?

8.0) je reçois le message suivant :

./mon_prog: error while loading shared libraries: libstdc++.so.5:
cannot open shared object file: No such file or directory

Comment compiler des programmes sur ma machine qui marcheraient sur
toute autre machine ?


Facile ! Pour que ton programme marche sur d'autres machines, il suffit
qu'elles utilisent les bonnes bibliothèques.

--
Richard

Avatar
germain
kamal wrote:

Bonjour,

j'ai compilé un programme en C++ sous g++ 3.2 (linux MDK 9.0), quand je
l'utilise sur une autre machine possédant une version 2.96 de g++ (MDK
8.0) je reçois le message suivant :

./mon_prog: error while loading shared libraries: libstdc++.so.5:
cannot open shared object file: No such file or directory

Comment compiler des programmes sur ma machine qui marcheraient sur
toute autre machine ?



soit tu compiles tout en statique (g++ -static ... -ltruc, ne pas oublier
d'installer les rpms des libs statiques dont tu as besoin
# urpmi <nom du paquetage>-static-devel
), soit tu compiles sur une "vieille" distribution (ta Mdk 8.0, par ex...
une 7.2 serait encore meilleure)
La compatibilité de libstdc++ et autres est toujours assurée de manière
descendante.


Merci