Как мне настроить TagLib 1.11.1 как статическую библиотеку для моего проекта Qt Creator на OS X?

Я работаю над проектом C ++ в Qt Creator (на OS X), и я хочу использовать TagLib. После долгих онлайн-исследований я пытаюсь понять, как добраться до точки, где я могу использовать библиотеку TagLib в своем проекте.

Пока что у меня есть:

  • загруженный taglib-1.11.1.tar и разархивировал содержимое.
  • Скачал CMake и использовал графический интерфейс для конфигурировать а также генерировать эти файлы. (Я использовал для этого опции CodeBlocks — Unix, поскольку из того, что я нашел, было предложено)
  • Отсюда я попробовал: а) Добавление сгенерированных файлов в качестве внешней библиотеки в мой проект Qt Creator. Тем не менее, это, кажется, просто добавляет ~ 3 строки к моему текущему файлу .pro со ссылкой на путь к файлам TagLib. б) Создание нового проекта специально для этой библиотеки … с) разбивая мою голову о стену, пытаясь заставить это работать.

Любая помощь с этим будет высоко ценится, спасибо.

Редактировать:

Когда я добавляю внешнюю библиотеку, в мой файл .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),

Редактировать:

код в .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 ссылка на сайт.

Редактировать:

Я установил в нем, используя следующее:

  cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release
make
sudo make install

Теперь каталог файлов в библиотеке выглядит как следующий. Затем я повторно добавил внешний каталог в 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,

1

Решение

Если вы только собираете taglib без его установки.

Вы должны иметь что-то вроде:

INCLUDEPATH += \
/path/to/taglib_source/taglib \
/path/to/taglib_source/taglib/toolkit \
/path/to/taglib_builddir/

LIBS += \
-L/path/to/taglib_builddir/taglib \
-ltag

Если вы установили taglib по умолчанию:

INCLUDEPATH += \
/usr/local/include/taglib

LIBS += \
-L/usr/local/lib \
-ltag
0

Другие решения

Других решений пока нет …