Codeblocks compile mais ne lance pas

Bonjour,

J’utilise Codeblocks pour coder en C++, lorsque je compile le projet tout va bien mais lorsque je veux le lancer j’ai cette erreur:

D’après Google faut que j’installe libstdc++6 or il est déjà installé.

Je ne sais pas si cette information est utile mais en compilant avec g++ (comme Codeblocks) et en lançant à la main ça fonctionne (dans un terminal je veux dire).

J’utilise Debian Testing et le Codeblocks des dépôts Testing aussi.

Merci d’avance.

[quote]root@marc:/home/marc# apt-file search libstdc++.so.6
lib64stdc++6: /usr/lib64/libstdc++.so.6
lib64stdc++6: /usr/lib64/libstdc++.so.6.0.13
lib64stdc++6-4.3-dbg: /usr/lib64/debug/libstdc++.so.6
lib64stdc++6-4.3-dbg: /usr/lib64/debug/libstdc++.so.6.0.10
lib64stdc++6-4.4-dbg: /usr/lib/debug/usr/lib64/libstdc++.so.6.0.13
lib64stdc++6-4.4-dbg: /usr/lib64/debug/libstdc++.so.6
lib64stdc++6-4.4-dbg: /usr/lib64/debug/libstdc++.so.6.0.13
libstdc++6: /usr/lib/libstdc++.so.6
libstdc++6: /usr/lib/libstdc++.so.6.0.13
libstdc++6-4.3-dbg: /usr/lib/debug/libstdc++.so.6
libstdc++6-4.3-dbg: /usr/lib/debug/libstdc++.so.6.0.10
libstdc++6-4.4-dbg: /usr/lib/debug/libstdc++.so.6
libstdc++6-4.4-dbg: /usr/lib/debug/libstdc++.so.6.0.13
libstdc++6-4.4-dbg: /usr/lib/debug/usr/lib/libstdc++.so.6.0.13
root@marc:/home/marc#
[/quote]

d’où il sort que pour avoir libstdc++.so.6 il faut installer le paquet lib64stdc++6 pour le 64 bits vu que tu as déjà installé le paquet libstdc++6

Je n’ai aucun paquet qui commence par “lib64” dans mes dépôts… Il faut activer un dépôt en particulier?

C’est juste que marcastro est sur une install 32 bits alors que tu es très probablement en 64 bits… :033

Bon sinon,

Et quand tu compiles avec CodeBlocks mais que tu lances le programme compilé à partir du terminal, il se passe quoi ?

Il se passe que j’ai la même erreur qu’avec Codeblocks.

Ok, essayons ça :

$ ldd nom_de_ton_binaire_compilé_avec_CB $ ldd nom_de_ton_binaire_compilé_manuellement_avec_gcc

le paquet lib64stdc++6 existe bel et bien dans les dépôts testing et c’est ce paquet qui te manque

[quote]Paquet lib64stdc++6

* wheezy (testing) (libs): GNU Standard C++ Library v3 (64bit)
  4.6.2-4: i386 mips mipsel powerpc s390 sparc

[/quote]

Non, ça dépend s’il est en 32 bits (i386) ou 64 bits (amd64), ce qu’il n’a pas précisé (mais vu qu’il ne l’a pas dans ses dépôts il est certainement en 64 bits).

$ apt-cache policy 'lib64stdc++6' N: Impossible de trouver le paquet lib64stdc++6 N: Impossible de trouver de paquet correspondant à l'expression rationnelle « lib64stdc++6 » $ apt-cache policy 'libstdc++6' libstdc++6: Installé : 4.6.2-4 Candidat : 4.6.2-4 Table de version : *** 4.6.2-4 0 992 http://ftp.debian.org/debian/ testing/main amd64 Packages 502 http://ftp.debian.org/debian/ unstable/main amd64 Packages 100 /var/lib/dpkg/status 4.4.5-8 0 102 http://ftp.debian.org/debian/ stable/main amd64 Packages $ apt-cache policy 'lib32stdc++6' lib32stdc++6: Installé : 4.6.2-4 Candidat : 4.6.2-4 Table de version : *** 4.6.2-4 0 992 http://ftp.debian.org/debian/ testing/main amd64 Packages 502 http://ftp.debian.org/debian/ unstable/main amd64 Packages 100 /var/lib/dpkg/status 4.4.5-8 0 102 http://ftp.debian.org/debian/ stable/main amd64 Packages
D’ailleurs le bout de texte que tu as cité est on ne peut plus clair : ce paquet n’existe pas pour l’architecture amd64.

Celui de Codeblocks:

ldd /home/kyansaa/Desktop/Essai/bin/Debug/Essai linux-gate.so.1 => (0xf7768000) libstdc++.so.6 => not found libm.so.6 => /lib32/libm.so.6 (0xf772f000) libgcc_s.so.1 => not found libc.so.6 => /lib32/libc.so.6 (0xf75d6000) /lib/ld-linux.so.2 (0xf7769000)

Celui à la main:

ldd /home/kyansaa/Desktop/Essai/main.bin linux-vdso.so.1 => (0x00007fff7f5ff000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f943b3cc000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f943b14a000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f943af33000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f943abaf000) /lib64/ld-linux-x86-64.so.2 (0x00007f943b6e3000)

L’un le détecte l’autre pas.

Y’a surtout que tu es bien sur une archi amd64 et que, pour une raison que je ne saurais expliquer CodeBlocks semble faire une compilation pour de l’i386. Comme tu n’as pas les libs de compatibilité 32 bits d’installées, il te gueule dessus.

Deux possibilités :

  1. tu installes ia32-libs et ia32-libs-dev (je te le déconseille, ça ne résoudra pas le problème ça le masquera juste, c’est pas la bonne manière de faire).
  2. dans les options de CodeBlocks tu trouves pourquoi il compile en i386 au lieu d’amd64, et tu corriges l’option en question.

La question que je me pose, c’est comment ça arrive à linker si tu n’as pas ia32-libs(-dev) d’installé… :017

Dans les options j’ai rien de coché dans “Complier flags”, dans “Linker settings” j’ai rien et dans “Toolchain executables” tout est rempli sauf la ligne “Ressource compiler”.

Est-ce que tu as build-essential ? Moi aussi j’ai eu des problèmes au début avec CodeBlocks… Et aussi, est-ce que tu as bien mis GCC comme compilateur (on ne sait jamais…) ? :slightly_smiling:

Je ne connais pas du tout CodeBlocks (j’ai dû l’utiliser une ou deux fois sans conviction y’a des années), donc je pourrai pas trop t’aider là.

Cela dit, à vue de nez ça concernerait plutôt le toolchain. C’est quoi les valeurs actuelles de ton projet ?

Je viens de l’installer mais ça donne la même chose, besoin d’un redémarrage du système?

J’ai “gcc” en compilateur C et “g++” en compilateur C++.

Que veux-tu dire par “valeurs du projet”?

À priori non, mais tu peux toujours si ça te fait plaisir (on sait jamais :mrgreen:). Par contre faut peut-être bien recompiler.

Hmph. Ça nous avance pas. :confused:

Dans un IDE t’as deux types d’options : les options globales qui s’appliquent à tous les projets, et les options spécifiques à chaque projet. Comme je ne connais pas CB, je te demande spécifiquement les options configurées pour ton projet. :wink:
Cela dit maintenant qu’on parle de ça, t’as aussi été dans les préférences globales voir si y’avait quelque chose au sujet de l’architecture cible ?

Pour mon projet j’ai seulement spécifié que c’était du C++ et rien dans les options globales concernant l’architecture.

si ça peut aider

as tu la compatibilitée C++ ?

symantec.com/business/suppor … =TECH31347

a voir forums.gentoo.org/viewtopic-t-87 … art-0.html

On vient de me conseille d’installer “g+±multilib” et depuis ça fonctionne.

C’est désormais résolu.

Merci. :wink: