IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Code::Blocks Discussion :

Problème de librairie avec code blocks sous Linux


Sujet :

Code::Blocks

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 33
    Points : 28
    Points
    28
    Par défaut Problème de librairie avec code blocks sous Linux
    J'ai un petit problème avec code::blocks sous Linux avec mon projet.

    J'ai trois projets dans un workspace:
    -- Un projet exécutable pour tester une librairie partagée.
    -- Un projet Librairie partagée principal
    -- un autre projet de librairie partagée utilitaire

    Dans la boîte de dialogue Project settings, dans l'onglet Build Targets, j'ai redéfinit le Output Filename pour créer l'exécutable et la librairie dans le même répertoire.

    en gros, sa donne ceci:

    /home/philippe/A3D_Debug/TestApplication
    /home/philippe/A3D_Debug/libA3D_Core.so
    /home/philippe/A3D_Debug/libA3D_Util.so

    Quand j'ai lié la première librairie partagée à l'exécutable, j'ai défini le chemin dans les options pour l'éditeur de lien pour /home/philippe/A3D_Debug/libA3D_Core.so

    Le programme se compilait et s'exécutait sans problème.

    Ensuite quand j'ai créé la deuxième librairie partagée et que je l'ai liée avec la première librairie partagée en définissant les options pour l'éditeur de lien pour /home/philippe/A3D_Debug/libA3D_Util.so, je pouvais compiler et lier la première librairie sans problème. Mais quand je construit l'exécutable, j'ai ce message:

    ||warning: ../../A3D_Debug/libA3D_Util.so, needed by /home/philippe/A3D_Debug/libA3D_Core.so, not found (try using -rpath or -rpath-link)|
    /home/philippe/A3D_Debug/libA3D_Core.so||undefined reference to `A3D::Util::ToString(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)'|
    ||=== Build finished: 1 errors, 1 warnings ===|

    dans les options pour libA3D_Core.so j'ai essayé de définir la librairie utilitaire en chemin absolu et en chemin non absolu, même résultat.

    J'ai essayé en mettant A3D_Util dans l'option pour les librairies de l'éditeur et lien et mettre le chemin dans les répertoires de recherche pour l'éditeur de lien. Je sais compiler A3D_Core, mais quand je recompile mon exécutable, me dis:

    ||=== TestApplication, Debug ===|
    ||warning: ../../A3D_Debug/libA3D_Util.so, needed by /home/philippe/A3D_Debug/libA3D_Core.so, not found (try using -rpath or -rpath-link)|
    ||=== Build finished: 0 errors, 1 warnings ===|

    Cette librairie est dans le même répertoire que l'exécutable. Le répertoire pour rechercher les librairies est définis dans les options de l'éditeur de lien pour l'exécutable (comme c'est le même répertoire que l'autre librairie).

    Quand le lance l'exécutable, me dis qu'il peut pas trouver la librairie libA3D_Util.so

    J'ai même définit le répertoire /home/philippe/A3D_Debug dans le fichier ld.so.conf


    Est ce qu'il y a d'autres options à définir quand on lie une librairie partagée qui se lie elle même à une autre librairie partagée ?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 33
    Points : 28
    Points
    28
    Par défaut
    J'ai résolu le problème

    A la place de définir les chemins de recherche directement dans les options que Code block offre (répertoire pour les librairies, ajouter des librairies), j'ai défini la librairie et le chemin de recherche directement dans les autres options pour l'éditeur de lien, et cela pour tous les projets, ainsi que de définir LD_LIBRARY_PATH pour le chemin /home/philippe/A3D_Debug

    et tout fonctionne normalement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compilation avec Code::Blocks sous Linux (Ubuntu)
    Par Kaluza dans le forum Débuter
    Réponses: 1
    Dernier message: 05/10/2011, 16h10
  2. Réponses: 2
    Dernier message: 16/12/2008, 13h32
  3. Utiliser Qt avec code::blocks sous Kubuntu
    Par H-bil dans le forum Qt
    Réponses: 6
    Dernier message: 18/01/2008, 00h13
  4. Réponses: 2
    Dernier message: 10/09/2007, 22h37
  5. Code::Blocks sous Linux problème de linkage
    Par JuTs dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 22/03/2006, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo