2016-07-20 14 views
1

Ich versuche, ein einfaches C++ qmake-Projekt in Qt zu erstellen, habe ich die Bibliothek von meinem Code mit dem eingebauten "Bibliothek hinzufügen ..." Assistenten verknüpft. Ich habe die Bibliothek als statisch festgelegt.Qt Fehler beim Hinzufügen von Bibliothek - keine Regel zu Ziel

Dies ändert dann meine .proDatei mit diesem zusätzlichen Text:

win32: LIBS += -L$$PWD/./ -lfusionTrack32 

INCLUDEPATH += $$PWD/. 
DEPENDPATH += $$PWD/. 

win32:!win32-g++: PRE_TARGETDEPS += $$PWD/./fusionTrack32.lib 
else:win32-g++: PRE_TARGETDEPS += $$PWD/./libfusionTrack32.a 

ich dann versuchen, das Projekt zu erstellen und diese Fehler zurückgegeben:

mingw32-make[1]: *** No rule to make target'//icnas1.cc.ic.ac.uk/hd1714/ftk_basic/./libfusionTrack32.a', needed by 'release\ftk_basic.exe'. Stop. 
Makefile:34: recipe for target 'release' failed 
mingw32-make: *** [release] Error 2 

Ich habe ich versucht das hinzufügen 32-Bit-Bibliothek, aber ich bekomme den gleichen Fehler beim Versuch, die 64-Bibliothek auch zu verknüpfen. Die Bibliothek ist eine .lib-Importbibliothek. Ich habe derzeit alle Dateien im selben Ordner. Ich benutze Windows 7, minGW 32, g ++.

auch wenn ich die Leitung für die .a-Datei löschen (das ich nicht will nicht):

else:win32-g++: PRE_TARGETDEPS += $$PWD/./libfusionTrack32.a 

dann stattdessen bekomme ich die zwei Fehler:

cannot find -lfusionTrack32 
error: ld returned 1 exit status 

Irgendwelche Hilfe wird sehr geschätzt.

+0

Die Bibliothek hat keinen Namen libfusionTrack32.a? – perencia

+0

leider nicht @perencia, die Bibliothek heißt fusionTrack32.lib, ich glaube, die .a-Dateien sind für Unix und .lab sind das Äquivalent für Windows ... [siehe hier] (http://stackoverflow.com/questions/2337949/whats-the-difference-zwischen-lib-and-a-files) –

+0

daher meine Verwirrung, warum es dies in der .pro-Datei enthalten würde, nachdem ich die Kontrollkästchen für Mac und Linux im Assistenten deaktiviert. –

Antwort

1

Mein Vorschlag ist, dass Sie die Datei .pro direkt ändern können, nicht den Assistenten. Also, rückgängig machen Sie zunächst alle auf die .pro Datei vorgenommenen Änderungen und dann einfach die Bibliothek fügen Sie die folgenden Befehle:

# Absolute address of the .lib file 
LIBS += c:/mylib/mylib.lib 

# Absolute address of its header files (if any) 
INCLUDEPATH += c:/mylib/include 

Das ist es! more info

+0

Frogatto Ich habe getan, wie Sie sagten, ich weiß, einige Fehlermeldungen erhalten, vor allem für 'undefined Referenz' und auch einige schöne 'in Funktion' Fehler. Allerdings sind diese Funktionen nicht in der Bibliothek, also glaube ich, dass Sie es behoben haben, Herzlichen Glückwunsch! Du hast es getan :) Vielen Dank –