c++ - 由于 opencv 依赖项,使用 openCV 的项目无法构建

标签 c++ linux opencv

我从源代码构建 OpenCV 没有任何错误。

然后我尝试在一个项目中使用 OpenCV,但由于依赖关系,它无法编译。警告中的所有库都已安装但版本不同(实际上,.a 和.so 名称后没有添加版本号)。

这是编译错误:

/usr/bin/ld: warning: libavcodec.so.53, needed by /usr/lib/i386-linux-gnu/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libavformat.so.53, needed by /usr/lib/i386-linux-gnu/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libavutil.so.51, needed by /usr/lib/i386-linux-gnu/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libswscale.so.2, needed by /usr/lib/i386-linux-gnu/libopencv_highgui.so, not found (try using -rpath or -rpath-link)

如何消除错误?它们为什么会发生?

编译命令:

g++ -std=c++11 -Wall -gdwarf-3 -o dist/Debug/GNU-Linux-x86/rankcollection build/Debug/GNU-Linux-x86/QueryCollection.o build/Debug/GNU-Linux-x86/main.o -L/usr/local/lib -L/usr/lib/i386-linux-gnu -lboost_filesystem -lopencv_core -lboost_program_options -lopencv_imgproc -lopencv_features2d -lopencv_flann -lopencv_nonfree -lboost_system -lopencv_highgui -std=c++11

最佳答案

将 Boost 从 1.57 降级到 1.55 有所帮助。

但我仍然不知道为什么我一开始就遇到了问题。

关于c++ - 由于 opencv 依赖项,使用 openCV 的项目无法构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36938177/

相关文章:

linux - 在 Linux 中线程化时对函数的 undefined reference

c++ - 在 DCMTK 中将 OFString 转换为字符串或字符

c++ - 64位Windows 8机器上用Visual Studio 2012构建opencv的绝对解决方案

php - Acer Aspire One D270 上网本作为 Java、PHP 和 C++ 的主要编码机

C++令人困惑的状态变量行为

ruby - "export RUBYLIB=<path>/gem/lib"有什么作用?

c - 用户定义信号 1

opencv - 我如何平滑 OpenCV 中的曲线(轮廓)?

c++ - 使用 lambda 函数签名的函数重载

c++ - 在 Visual Studio 2013 中将 libcurl 库静态链接到我的项目(一个 dll)