включите id3lib в проект QT, переполнение стека

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

Конфигурация:

  • Qt Creator 2.8.1
  • Qt 5.1.1
  • Windows 7 64 бит

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

Как я могу включить библиотеку 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.

У кого-нибудь есть идея?

-1

Решение

У вас есть несколько проблем …

Прежде всего, вам не нужно включать сторонние заголовки в ваш HEADERS переменная. Вам нужно только указать место для INCLUDEPATH если есть

Во-вторых, вам нужно будет указать имя библиотеки а также место для LIBS переменная следующим образом:

LIBS += -L/path/to/id3lib/installation -lid3libname
0

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

Как вы компилируете? Я имею Linux и скомпилирую с g ++ -lid3 -lz. Ключ -lid3 предназначен для id3lib, который также нуждается в сжатии, поэтому -lz.

0

По вопросам рекламы [email protected]