2009-09-02 11 views
2

J'essaye de compiler un paquet qui utilise une bibliothèque tierce. Je l'ai eu ce travail il y a un certain temps, mais maintenant, il refuse juste de lier. Voici un exemple des erreurs:xcode linker error

"lwpp::GlobalBase<char const*()(char const*)>::globPtr", referenced from: 
    __ZN4lwpp10GlobalBaseIFPKcS2_EE7globPtrE$non_lazy_ptr in main.o 
    __ZN4lwpp10GlobalBaseIFPKcS2_EE7globPtrE$non_lazy_ptr in license-2998A499.o 
    ... 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

Le projet tiers (LWPP) est inclus comme un sous-projet. J'ai cliqué et glissé ses produits de construction dans les Cibles> nom_plug> Lien Binaire avec les bibliothèques, mais cela ne fonctionne toujours pas. Si j'importe les fichiers sources de lwpp, ces erreurs de lien disparaissent. Je suis complètement perdu.

Répondre

1

Apparemment, lwpp::GlobalBase< char const*()(char const*) > ::globPtr doit être défini quelque part. Soit vous devez le définir vous-même dans un fichier source, ou s'il est déjà défini dans la bibliothèque, vous devrez peut-être le déclarer comme extern dans main.cpp.

+0

Il est défini dans la bibliothèque. Comme je l'ai dit, je l'ai déjà fait fonctionner auparavant, mais xcode/gcc a décidé de ne plus le lier. J'ai demandé à un ami de l'essayer et pour lui, il établit un lien et compile correctement sur sa machine. J'essaie d'utiliser le même fichier de projet sur ma machine et j'obtiens des erreurs d'éditeur de liens. Cela n'a aucun sens. –

+0

Je devine juste ici, mais le problème peut être l'instanciation de modèle ... Essayez explicitement d'instancier GlobalBase Dima