-1

====================================

配置 :

  • Qt 创作者 2.8.1
  • Qt 5.1.1
  • 视窗 7 64 位

====================================

如何包含 id3lib 库?

我已经从http://sourceforge.net/projects/id3lib/files/下载了所需的文件(.h、.dll、.lib 和 .exp)

我已经在我的项目中包含了所有 .h 文件:

HEADERS  += audioTest.h \
    id3.h \
    id3/writers.h \
    id3/writer.h \
    id3/utils.h \
    id3/tag.h \
    id3/sized_types.h \
    id3/readers.h \
    id3/reader.h \
    id3/misc_support.h \
    id3/io_strings.h \
    id3/io_helpers.h \
    id3/io_decorators.h \
    id3/id3lib_strings.h \
    id3/id3lib_streams.h \
    id3/id3lib_frame.h \
    id3/helpers.h \
    id3/globals.h \
    id3/field.h

然后我包括了图书馆:

win32: LIBS += -L$$PWD/id3lib/ -lid3lib
INCLUDEPATH += $$PWD/id3lib
DEPENDPATH += $$PWD/id3lib
win32: PRE_TARGETDEPS += $$PWD/id3lib/id3lib.lib

然后,当我执行下面的示例时,它告诉我

  • undefined reference to ID3_Tag::ID3_Tag(char const*)'
  • undefined reference to 'ID3_Tag::~ID3_Tag()'
  • error: ld returned 1 exit status

代码 :

ID3_Tag tag("a.mp3");

我所做的有什么问题吗?我知道undefined reference to *这意味着一个糟糕的图书馆包含,但我找不到我失败的地方。

而且我在网上找不到解决方案:

有人有想法吗?

4

2 回答 2

0

你有几个问题正在进行中......

首先,您不需要将第 3 方标头包含到您的HEADERS变量中。如果有的话,您只需要指定位置INCLUDEPATH

其次,您需要指定变量的库名称位置,LIBS如下所示:

LIBS += -L/path/to/id3lib/installation -lid3libname
于 2014-01-11T05:02:53.517 回答
0

你如何编译?我有 Linux 并使用 g++ -lid3 -lz 进行编译。开关 -lid3 用于需要压缩的 id3lib 以及 -lz。

于 2017-07-27T11:38:00.017 回答