2010-11-18 4 views
0

Bonjour à tous,SjLj indéfini en essayant de développer une application Qt en utilisant Netbeans

J'essaie de développer ma première application Qt. Je reçois beaucoup d'erreurs comme suit si je tente de créer un lien dans les bibliothèques statiques avec mon propre code:

H:/NetBeansProjects/CommonLib/aes.cpp:607: undefined reference to `__gxx_personality_sj0' 
H:/NetBeansProjects/CommonLib/aes.cpp:607: undefined reference to `_Unwind_SjLj_Register' 
H:/NetBeansProjects/CommonLib/aes.cpp:615: undefined reference to `_Unwind_SjLj_Resume' 

Mon code compile et fonctionne lorsqu'ils ne sont pas utilisés avec Qt. Le programme Qt compilé et travaillé avant d'essayer de lier mes bibliothèques. Google-il montre qu'il peut y avoir une discordance entre les compilateurs utilisés pour construire les deux ensembles de code. J'ai défini l'environnement NetBeans pour utiliser la même chaîne d'outils pour générer les deux sans modification . J'utilise Windows, NetBeans 6.9.1 et la dernière version de Qt. J'ai placé le compilateur pour employer le compilateur de mingw fourni par Qt.

Des suggestions?

+0

Il semblerait qu'aucun code ne sera lié au nouveau Qt/Mingw. Mes tests unitaires non-Qt font maintenant la même chose. – Jay

Répondre

0

Trouvé la solution!

Il était en liaison dans les bibliothèques des versions précédentes de mes projets.

J'ai installé une nouvelle version du compilateur Mingw avec Qt pour corriger un problème. J'ai mis en place le nouveau compilateur comme une chaîne d'outils avec un nom différent dans Netbeans.

J'ai fait un nettoyage et je me suis appuyé sur les projets référencés en utilisant la nouvelle chaîne d'outils. Netbeans a stocké la bibliothèque compilée dans un répertoire nommé à partir de la chaîne d'outils. Il a quitté l'ancienne version de la bibliothèque dans un autre répertoire nommé pour la chaîne d'outils d'origine.

Lorsque vous ajoutez une référence de projet à une bibliothèque, Netbeans importe le chemin d'accès à la bibliothèque. Si vous modifiez la chaîne d'outils (et modifiez donc le chemin d'accès à la bibliothèque), d'autres projets pointent toujours vers l'ancien code. Vous devez supprimer les références du projet et les ajouter à nouveau.

Questions connexes