2009-09-20 6 views
1

J'ai deux fichiers qt .pro, tous deux utilisant la lib TEMPLATE et staticlib CONFIG. La première bibliothèque (appelons-la 'core') est une dépendance pour la seconde lib (je l'appellerai 'foo'). En fait, il y a une classe dans foo qui étend une classe en core, j'appellerai cette classe Bar.Lib statique qui lie une autre lib statique et qmake? Erreur de liaison impaire

Quand j'instancier la classe (qui est défini et mis en œuvre dans foo, mais Prolonge une classe (Bar) de base) dans un autre projet (pas lib) Je reçois l'erreur lien suivant:

/usr/bin/ld: Undefined symbols: 
    Bar::Bar() 

Fondamentalement, l'éditeur de liens ne peut pas trouver la classe dans la lib de base qui a été dérivée dans la lib de foo, mais SEULEMENT quand j'instancie la classe dans un troisième projet qui utilise les deux libs. Ce comportement est-il attendu?

Cordialement, Dan O

Mise à jour: Je l'ai fixé en invoquant directement le constructeur de barres dans le troisième projet avant d'utiliser la classe dérivée ... personne ne sait pourquoi je dois le faire?

Répondre

2

Le problème est la commande. C'est pertinent pour les bibliothèques statiques.

Modifiez l'ordre des bibliothèques dans la ligne LIBS.

Questions connexes