1 votes

Est-il possible d'avoir deux exécutables g++ avec une librairie partagée ?

Cela peut sembler bizarre mais je veux avoir deux exécutables g++. L'un dans le /usr/bin/g++ normal qui fonctionne bien actuellement. L'autre sous /sandbox/g++ qui est protégé par apparmor. Cependant, lorsque j'ai copié g++ (pas un lien symbolique, l'exécutable original g++-4.6) dans /sandbox/g++, il ne peut pas s'exécuter avec l'erreur suivante :

g++-4.6: error trying to exec 'cc1plus': execvp: No such file or directory

Comment puis-je le configurer pour utiliser le même chemin/lib que le g++ normal ? J'ai cherché en ligne la réponse commune pour l'erreur ci-dessus est de réinstaller g++ mais mon g++ fonctionne bien, je veux juste que celui-ci fonctionne en même temps.

Merci pour toute suggestion !

Edit :

Après avoir ajouté quelques règles PATH dans bashrc, cc1plus est trouvé mais tous les chemins des fichiers inclus sont désordonnés. Je pense que je vais suivre la suggestion de construire les fichiers sources localement et voir comment le configurer.

0voto

Essayez ça :

cd ~
cp /usr/bin/g++ gx
touch x.cpp
strace ./gx -o x x.cpp 2>xlog

Elle échoue avec le même message d'erreur, et dans xlog vous pouvez voir que g++ s'attend à trouver cc1plus dans un répertoire relatif ../lib/etc . Ceci est indépendant de l'armure.

Maintenant, il y a probablement des paramètres de configuration que vous pouvez utiliser pour que g++ cherche cc1plus ailleurs si vous voulez le compiler vous-même à partir des sources, mais en attendant cette option, je dirais que g++ doit être lancé depuis son répertoire normal, installé. g++ sera s'exécute à partir d'une copie de lui-même dans son répertoire normal, renommé bien sûr. Je pense que vous pourriez soumettre la copie à l'apparmorçage, si cela nourrit vos poulets.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X