Я работаю над проектом C++ в Qt Creator (на OS X), и я хочу использовать TagLib. После долгих исследований в Интернете, я изо всех сил пытаюсь понять, как добраться до точки, где я могу использовать библиотеку TagLib в своем проекте.Как настроить TagLib 1.11.1 как статическую библиотеку для моего проекта Qt Creator на OS X?
До сих пор у меня есть:
- Скачан
taglib-1.11.1.tar
и Разархивирован содержимое. - Скачан CMake и использовал GUI для связи и сгенерировали эти файлы. (Я использовал опции CodeBlocks - Unix для этого, так как из того, что я нашел, это было предложено)
- Отсюда я пробовал: a) Добавление сгенерированных файлов в качестве внешней библиотеки в проект Qt Creator. Однако, похоже, это просто добавить ~ 3 строки в мой текущий файл .pro, ссылающийся на путь файлов TagLib. b) Создание нового проекта специально для этой библиотеки ... c) размахивая головой о стену, пытаясь заставить ее работать.
Любая помощь с этим будет очень признательна, спасибо.
Edit:
Когда я добавить внешнюю библиотеку, то добавляется следующее моего файла .pro:
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
тогда я бег QMAKE, и проект строит & работает отлично. Однако, если я попытаюсь сделать что-то вроде #include <tag.h>
, я получаю сообщение об ошибке. В этом примере говорится: 'tstring.h' file not found #include "tstring.h"
. Затем, когда я удаляю строку ошибки, она дает другую ошибку, когда я запускаю ее framework not found tag
linker command failed with exit code 1 (use -v to see invocation)
.
Edit:
код в .pro изменен:
#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
Теперь я получаю ошибку library not found for -ltag
.
Вот изображение файлов под ../Libraries/taglib-1.11.1
и варианты, которые я использовал в CMake link.
Edit:
Я установил в нем, используя следующие:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release
make
sudo make install
Теперь каталог файлов в библиотеке выглядит как following. Затем я снова добавил внешний каталог в Qt. Так что теперь мой .pro файл содержит:
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
Сейчас он работает нормально, если я пытаюсь сделать что-то вроде #include <tag.h>
, и это дает ошибку 'tstring.h' file not found
.
Просто сделал правку, обращаясь к этим. Спасибо – WhaleDancer
Устранить условие 'else: mac', вы не получаете рамки при создании taglib, а в классической библиотеке. Обратите внимание, что это не ошибка, большая часть времени разработки макросов MacOS поставляется в комплекте под названием Frameworks. – SGaist
Я внес изменения, которые вы предложили, но я столкнулся с другой ошибкой. Я обратился к нему в редакцию. Спасибо – WhaleDancer