2010-11-18 5 views
0

alle Guten Tag mit zu entwickeln,SjLj undefined beim Versuch, eine Qt-Anwendung Netbeans

Ich versuche, meine erste Qt-Anwendung zu entwickeln. Ich erhalte viele Fehler wie folgt aus, wenn ich in statischen Bibliotheken mit meinem eigenen Code zu verknüpfen versuchen:

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' 

Mein Code kompiliert und arbeitet, wenn sie nicht mit Qt verwendet. Das Qt-Programm kompilierte und arbeitete, bevor ich versuchte, meine Bibliotheken zu verknüpfen. Google-Ing zeigt, dass es möglicherweise ein Konflikt zwischen den Compilern ist, die verwendet werden, um die beiden Code-Sätze zu erstellen. Ich legte die Netbeans-Umgebung fest, um die gleiche Toolchain zu verwenden, um beide ohne Änderung zu erstellen.

Ich benutze Windows, NetBeans 6.9.1 und die neuesten Qt. Ich habe den Compiler auf der Qt bereitgestellten Mingw Compiler festgelegt.

Irgendwelche Vorschläge?

+0

Es sieht aus wie kein Code wird mit dem neuen Qt/mingw verknüpfen. Meine Nicht-Qt-Unit-Tests machen jetzt dasselbe. – Jay

Antwort

0

Die Lösung gefunden!

Es wurde in Bibliotheken von früheren Versionen meiner Projekte verlinkt.

Ich habe eine neue Version von Mingw Compiler mit Qt installiert, um ein Problem zu beheben. Ich habe den neuen Compiler als Toolchain mit einem anderen Namen in Netbeans eingerichtet.

Ich habe eine saubere und bauen auf die referenzierten Projekte mit der neuen Werkzeugkette. Netbeans speicherte die kompilierte Bibliothek in einem Verzeichnis, das aus der Werkzeugkette benannt wurde. Es hat die alte Version der Bibliothek in einem anderen Verzeichnis für die ursprüngliche Werkzeugkette verlassen.

Wenn Sie einen Projektverweis zu einer Bibliothek hinzufügen, importiert Netbeans den Pfad zur Bibliothek. Wenn Sie die Werkzeugkette ändern (und daher den Pfad zur Bibliothek ändern), verweisen andere Projekte immer noch auf den alten Code. Sie müssen die Projektreferenzen entfernen und sie erneut hinzufügen.

Verwandte Themen