==================================
Конфигурация:
==================================
Как я могу включить библиотеку id3lib?
Я уже загрузил необходимые файлы (.h, .dll, .lib и .exp) из http://sourceforge.net/projects/id3lib/files/
Я уже включил все .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 *
означает плохое включение библиотеки, но я не могу найти, где я потерпел неудачу.
И я не могу найти решение в Интернете:
taglib
но я читаю Вот id3lib был лучше.LIBS += /usr/lib/libid3.a
работает. Но не в Windows.У кого-нибудь есть идея?
У вас есть несколько проблем …
Прежде всего, вам не нужно включать сторонние заголовки в ваш HEADERS
переменная. Вам нужно только указать место для INCLUDEPATH
если есть
Во-вторых, вам нужно будет указать имя библиотеки а также место для LIBS
переменная следующим образом:
LIBS += -L/path/to/id3lib/installation -lid3libname
Как вы компилируете? Я имею Linux и скомпилирую с g ++ -lid3 -lz. Ключ -lid3 предназначен для id3lib, который также нуждается в сжатии, поэтому -lz.