1

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

openalpr.lib在 C:\path\to\alpr 中,alpr.h头在 C:\path\to\alpr\include 所有 *.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)

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

4

1 回答 1

0

GCC5 和 C++11 ABI

依赖第三方库或插件接口但仍使用旧 ABI 的用户可以使用它们构建代码,-D_GLIBCXX_USE_CXX11_ABI=0一切正常。在大多数情况下,由于链接器抱怨未解析符号涉及__cxx11.

尝试使用-D_GLIBCXX_USE_CXX11_ABI=0.

于 2017-09-04T12:40:18.147 回答