[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Debian Wheezy AMD 64 et g++ 4.7



Bonjour,

premièrement, je ne suis pas inscrit sur la liste de diffusion. Aussi, j'espère
que vous pourrez m'ajouter en CC pour toute éventuelle réponse. Merci pour ce
point.

Ensuite, j'en viens au cœur du sujet. J'ai rencontré des soucis avec g++ 4.7,
les programmes compilés avec cette version semblent utiliser la libstdc++ 4.6
et je n'arrive pas à trouver comment les "forcer" à utiliser la nouvelle
version.

En effet, lors d'une session sous gdb, quelques messages m'ont alertés:
"warning: Source file is more recent than executable."
Après avoir vérifié, et recompilé plusieurs fois, ce message ne disparaît pas.
Après quelques recherches sur le net, une solution possible à ce message est
qu'il y ait des mauvaises correspondances entre les versions de fichiers.

J'ai lancé une session gdb en mode verbose (set verbose on) et j'ai pu constaté
que gdb ne pouvait pas trouver la version debug de libstdc++:

Reading symbols from /usr/lib/x86_64-linux-gnu/libstdc++.so.6...(no debugging symbols found)...done.
Registering libstdc++-v6 pretty-printer for /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ...
Loaded symbols for /usr/lib/x86_64-linux-gnu/libstdc++.so.6

Hors, j'ai bien installé libstdc++6-4.7-dbg (ce qui a eu pour effet de supprimer
le debug de la version 4.6). A noter aussi que gdb trouve _toutes_ les autres
librairies en débug.

De plus, une erreur de segmentation dans l'un de mes programmes, ressort cette
erreur sous gdb:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe2742700 (LWP 443)]
_M_lower_bound (__y=<optimized out>, __k=..., __x=0x407, this=<optimized out>)
    at /usr/include/c++/4.6/bits/stl_tree.h:1096

On voit bien ici que le fichier incriminé est issu de g++ 4.6 et non g++ 4.7 !

Informations diverses:

pour compiler sous g++ 4.7 j'utilise cette commande (avant configure...):

export CXX=g++-4.7

Je m'assure aussi que cette variable est bien exportée avant un make install,
et avant une exécution avec gdb (au cas où...).

Questions:

Savez-vous si j'ai mal fait quelque chose, s'il s'agit d'un bug avec les
paquets gcc-4.7 ou avec celui de gdb sous debian ?
Comment puis-je y remédier ?

Cordialement,

JdF


Reply to: