如何将 TagLib 1.11.1 设置为我在 OS X 上的 Qt Creator 项目的静态库?
How do I setup TagLib 1.11.1 as a static library for my Qt Creator project on OS X?
我正在 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 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 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
.
如果你只构建 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
我正在 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 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 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
.
如果你只构建 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