Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1486 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Compilation en mode release (-02) : ca link plus avec gcc 4.4.2

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compilation en mode release (-02) : ca link plus avec gcc 4.4.2

n°1959236
guepe
J'ai du noir sur la truffe ?
Posté le 20-01-2010 à 18:56:17  profilanswer
 

J'espère poster dans la bonne catégorie. Je travaille sur un projet comportant plusieurs grands blocs, dont certaines briques de base sont compilées sous forme de librairie dynamique (je suis sous linux, GCC 4.4.2)

 

Plusieurs blocs utilisent notamment une librairie de base et link dessus sans soucis, que ce soit en mode debug ou en mode release. Cependant, le bloc sur le quel je travaille actuellement ne link sur la librairie qu'en mode debug. Que la librairie sois en mode release ou en mode debug, il _faut_ que je compile mon bloc (disont A) en debug, sinon pas de link !

 

Il semble donc que certaines sections (et le nombre d'erreur est très important) soient sensibles aux optimisations faites par le compilo, et ce sont des sections qui sont utilisées par les autres blocs qui utilisent la librairie de base !

 

J'ai essayé de compiler tous les blocs avec GCC 4.1.2 et ca marche ! Je me demande donc comment je pourrais retracer les problèmes...
Voici un exemple d'erreur :

 

netlistGenerator.cpp:(.text+0x2702): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >

 

C'est un peu toutes les même erreurs partout.  Je suis en train de lire ceci http://gcc.gnu.org/bugs/#known et peut etre regarder si j'ai pas des warnings nouveaux avec gcc 4.4.2 (je travaille en -Wall). J'ai vu que le passage de l'un a l'autre présentait beaucoup de nouveaux warnings (enfin beaucoup, une dizaine)

 

[edit] J'ai oublie de preciser que gcc 4.4.2 a ete compile par moi meme, sans option particuliere... J'y verrai bien la cause de mes soucis !


Message édité par guepe le 20-01-2010 à 19:35:14

---------------
Un blog qu'il est bien
mood
Publicité
Posté le 20-01-2010 à 18:56:17  profilanswer
 

n°1959240
guepe
J'ai du noir sur la truffe ?
Posté le 20-01-2010 à 19:14:43  profilanswer
 

Bon ben finalement, a part quelques "unused variable" (tout à fait normal, dans des sections non terminées) le reste compile sans warning avec -Wall !
Je doute avoir trouvé un bug de gcc mais c'est quand même étrange que cela compile avec 4.1.2 et pas 4.4.2, le tout sans warning particulier !
Je vais essayer de compiler sur un 4.4.2 qui n'a pas été compilé par moi-même, mais je ne l'ai qu'en 32bits.


---------------
Un blog qu'il est bien
n°1959246
guepe
J'ai du noir sur la truffe ?
Posté le 20-01-2010 à 19:50:31  profilanswer
 

Bon ben j'ai trouve : j'ai pas compile gcc avec les bonnes options, parce que ca compile sur mon archlinux :-)
J'ai plus qu'a le recompiler, desole du derangement. Je posterai les options que j'ai utilise lorsque ca marchera, au cas ou ca servirait a quelqu'un !


---------------
Un blog qu'il est bien
n°1960696
guepe
J'ai du noir sur la truffe ?
Posté le 26-01-2010 à 23:00:29  profilanswer
 

Bah en fait non c'est pas tout à fait cela : après avoir nettoyé tout j'ai ceci maintenant :
 
gcc 4.1.2 fourni par la distribution par défaut : tout fonctionne, ca link et tout en release et debug
gcc 4.3.2 fourni par la distribution, mais installé en plus : tout compile, mais PAS de link de mon exe sur ma lib, avec _plein_ de symboles non définis.
 
Se pourrait-il que ce soit plus du côté de problème de libstdc++ ou quelque chose du genre ? Pour le moment je bosse avec gcc 4.1.2, mais pas d'openmp  :(


---------------
Un blog qu'il est bien
n°1960744
Joel F
Real men use unique_ptr
Posté le 27-01-2010 à 07:16:08  profilanswer
 

gcc 4.3.2 a peut etre besoin de libstd++6.
Et d'habitude, je compile jamais gcc, c'ets chiant comme la mort. T'as pas un package pr ça (que se soit le 4.4 ou les autres) ?

Message cité 1 fois
Message édité par Joel F le 27-01-2010 à 07:17:39
n°1962428
guepe
J'ai du noir sur la truffe ?
Posté le 02-02-2010 à 19:46:52  profilanswer
 

Joel F a écrit :

gcc 4.3.2 a peut etre besoin de libstd++6.
Et d'habitude, je compile jamais gcc, c'ets chiant comme la mort. T'as pas un package pr ça (que se soit le 4.4 ou les autres) ?


En fait j'ai 4.3 en package, mais c'est le MEME problème ! Et je l'ai toujours pas résolu. Il me faut juste 4.2 minimum.
 
J'ai regardé : la libstdc++ pour gcc 4.3 est dispo en package avec le paquet, et est installé. J'ai un peu laissé tombé pour le moment, mais c'est vraiment trop  :fou:


---------------
Un blog qu'il est bien

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Compilation en mode release (-02) : ca link plus avec gcc 4.4.2

 

Sujets relatifs
Vb mode evenementiel listviewVisual Studio 2010 - C# Directx - forcer le mode x86
Classes "vues" par javac mais compilation impossibleprobleme avec dreamweaver en mode affichage creéation
Ordre de compilationErreur de compilation Java "cannot find symbol" sous ubuntu 9.04
Visual Studio 2008 / Sql Server. Problem avec l'insert modeCompilation avec boost
[C++/Makefile] Compilation sous windowsErreur à la compilation en utilisant driver postgresql. Classpath?
Plus de sujets relatifs à : Compilation en mode release (-02) : ca link plus avec gcc 4.4.2


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR