У меня возникли проблемы с тем, чтобы сторонняя библиотека (libconfig++) работала в Qt.
При компиляции в Qt я получаю сообщения об ошибках, такие как:
undefined reference to `_imp___ZN9libconfig6ConfigC1Ev'
undefined reference to `_imp___ZN9libconfig6Config8readFileEPKc'
undefined reference to `_imp___ZNK9libconfig6Config5writeEP6_iobuf'
и Т. Д.
В моем файле .pro у меня есть:
LIBS += -L$$PWD/libconfig/lib -lconfig++
И я добавил libconfig++.dll и libconfig++.lib в правильную папку.
В этом проекте успешно используется другая сторонняя библиотека (аналогичным образом), поэтому я не думаю, что это проблема с синтаксисом или включением.
Кажется, это может быть проблема с искажением имен С++? Как я могу это подтвердить?
Прямо сейчас я создаю библиотеку в VS 2008 (я пытался создать ее как динамическую, так и статическую библиотеку, ни одна из них не работает). Я думаю, что я мог сделать это в прошлом с другими библиотеками. Есть ли какой-то флаг в VS, который я неправильно устанавливаю?
Спасибо
config++.dll
? Обратите внимание на различные соглашения об именах библиотек между Unix-подобными и Windows. В Unix-подобных файлах библиотеки .so начинаются с префиксаlib
, который не включен в параметр компоновщика-l
. В Windows файлы .dll не имеют неявного префиксаlib
. Другими словами, файл Unixylibconfig++.so
обычно будетconfig++.dll
в Windows. - person hyde   schedule 27.08.2015