【发布时间】:2017-06-08 15:07:18
【问题描述】:
我正在使用 Qt Creator(在 OS X 上)中的 C++ 项目,我想使用 TagLib。经过大量的在线研究,我正在努力弄清楚如何才能在我的项目中使用 TagLib 库。
到目前为止我有:
- 已下载
taglib-1.11.1.tar并取消存档内容。 - 下载了 CMake 并使用 GUI 来配置和生成这些文件。 (我为此使用了 CodeBlocks - Unix 选项,因为我发现这是建议的)
- 从这里我尝试过:a) 将生成的文件作为外部库添加到我的 Qt Creator 项目中。但是,这似乎只是在我当前的 .pro 文件中添加了 ~ 3 行,引用了 TagLib 文件的路径。 b) 专门为这个库创建一个新项目...c) 试图让它工作,我的头撞在墙上。
对此的任何帮助将不胜感激,谢谢。
编辑:
当我添加外部库时,以下内容会添加到我的 .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 taglinker 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 link 中使用的选项。
编辑:
我使用以下方法安装在其中:
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。
【问题讨论】: