Мне нужно интегрировать библиотеку OpenALPR в мою программу на C ++. К сожалению, я не могу заставить работать ссылки.
openalpr.lib находится в C: \ path \ to \ alpr, alpr.h заголовок в C: \ path \ to \ alpr \ включает все файлы * .dll в каталоге с главный файл.
Система Windows7, компилятор Gcc 5.3.
Текущая команда сборки:
g++ -Wall -fexceptions -g -IC:\path\to\alpr\include -c C:\path\to\project\main.cpp -o obj\main.o
g++ -LC:\path\to\alpr -o bin\test.exe obj\main.o -lopenalpr
код:
#include <alpr.h>
int main()
{
alpr::Alpr openalpr("us", "openalpr.conf");
return 0;
}
ошибка:
undefined reference to `alpr::Alpr::Alpr(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
И так далее, и так далее, множество похожих «неопределенных ссылок».
Библиотека OpenALPR загружается в двоичной версии из:
https://github.com/openalpr/openalpr/wiki/Compilation-instructions-(Windows)
Я должен построить библиотеку из источников? Может я что то пропустил? Заранее спасибо.
Пользователи, которые зависят от сторонних библиотек или интерфейсов плагинов, которые все еще используют старый ABI, могут создавать свой код с
-D_GLIBCXX_USE_CXX11_ABI=0
и все должно работать нормально. В большинстве случаев будет очевидно, когда этот флаг необходим из-за ошибок компоновщика, жалующихся на нерешенные символы, связанные с__cxx11
,
Попробуйте скомпилировать с -D_GLIBCXX_USE_CXX11_ABI=0
,
Других решений пока нет …