Ich arbeite an einem C++ Projekt in Qt Creator (unter OS X), und ich möchte TagLib verwenden. Nach vielen Online-Recherchen habe ich Schwierigkeiten, herauszufinden, wie ich die TagLib-Bibliothek in meinem Projekt verwenden kann.Wie richte ich TagLib 1.11.1 als statische Bibliothek für mein Qt Creator-Projekt unter OS X ein?
Bisher habe ich:
- heruntergeladen
taglib-1.11.1.tar
und unarchivierten den Inhalt. - Heruntergeladen CMake und verwendet die GUI zu konfigurieren und generieren diese Dateien. (Ich habe die CodeBlocks - Unix-Optionen dafür verwendet, was ich vorgeschlagen habe.)
- Von hier aus habe ich versucht: a) Die generierten Dateien als externe Bibliothek zu meinem Qt Creator Projekt hinzufügen. Dies scheint jedoch nur 3 Zeilen zu meiner aktuellen .pro-Datei hinzuzufügen, die auf den Pfad der TagLib-Dateien verweist. b) ein neues Projekt speziell für diese Bibliothek anlegen ... c) Zerschlagung meinen Kopf gegen die Wand versuchen, diese Arbeit zu bekommen.
Jede Hilfe mit diesem würde sehr geschätzt werden, danke.
Edit:
Wenn ich die externe Bibliothek hinzufügen, wird hinzugefügt, um meine .proDatei:
win32:CONFIG(release, debug|release): LIBS += - L$$PWD/../../../Libraries/taglib-1.11.1/taglib/release/ -ltag
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/debug/ -ltag
else:mac: LIBS += -F$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -framework tag
else:unix: LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -ltag
INCLUDEPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib
DEPENDPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib
ich dann Qmake laufen, und das Projekt baut & läuft gut. Wenn ich jedoch versuche, etwas wie #include <tag.h>
zu tun, erhalte ich einen Fehler. In diesem Beispiel heißt es 'tstring.h' file not found #include "tstring.h"
. Dann, wenn ich die Fehlerzeile lösche, gibt es einen anderen Fehler, wenn ich es framework not found tag
linker command failed with exit code 1 (use -v to see invocation)
laufen lasse.
Edit:
Code in .pro geändert:
#win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/release/ -ltag
#else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/debug/ -ltag
LIBS += -F$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -ltag
#else:unix: LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -ltag
INCLUDEPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib
DEPENDPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib
Jetzt habe ich den Fehler library not found for -ltag
bekommen.
Hier ist ein Bild der Dateien unter ../Libraries/taglib-1.11.1
und die Optionen, die ich in CMake link verwendet.
Edit:
ich in installiert mit dem folgenden:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release
make
sudo make install
nun das Verzeichnis der Dateien in der Bibliothek sieht aus wie die following. Dann habe ich das externe Verzeichnis in Qt neu hinzugefügt. So, jetzt meine .pro-Datei enthält:
LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -ltag
INCLUDEPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib
DEPENDPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib
PRE_TARGETDEPS += $$PWD/../../../Libraries/taglib-1.11.1/taglib/libtag.a
Jetzt läuft es gut, es sei denn, ich versuche, so etwas wie #include <tag.h>
zu tun und es gibt den Fehler 'tstring.h' file not found
.
gerade bearbeitet, diese Adressierung. Danke – WhaleDancer
Entfernen Sie die 'else: mac'-Klausel, Sie erhalten kein Framework beim Erstellen von Taglib, sondern eine klassische Bibliothek. Beachten Sie, dass dies kein Bug ist. Die meiste Zeit kommen macOS-Entwicklungswerkzeuge im Bundle namens Frameworks. – SGaist
Ich habe die Änderung vorgenommen, die Sie vorgeschlagen haben, aber ich renne zu einem anderen Fehler. Ich habe es in einer Bearbeitung angesprochen. Danke – WhaleDancer