使用c ++,未定义的引用设置OpenALPR。

时间:2017-09-04 11:55:49

标签: c++ undefined-reference openalpr

我需要将OpenALPR库集成到我的c ++程序中。不幸的是,我无法进行链接工作。

openalpr.lib 位于C:\ path \ to \ alpr, alpr.h 标头位于C:\ path \ to \ alpr \ include all * .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> >)'

等等,还有很多类似的未定义参考文献&#39;。

OpenALPR库以二进制版本下载: https://github.com/openalpr/openalpr/wiki/Compilation-instructions-(Windows)

我应该从源代码构建库吗?也许我错过了什么?提前谢谢。

1 个答案:

答案 0 :(得分:0)

GCC5 and the C++11 ABI

  

依赖第三方库或仍然使用旧ABI的插件接口的用户可以使用-D_GLIBCXX_USE_CXX11_ABI=0构建他们的代码,一切都应该正常工作。在大多数情况下,由于链接器错误地抱怨涉及__cxx11的未解析符号,因此需要此标志时很明显。

尝试使用-D_GLIBCXX_USE_CXX11_ABI=0进行编译。