由于 opencv 依赖项,无法构建带有 openCV 的项目

Posted

技术标签:

【中文标题】由于 opencv 依赖项,无法构建带有 openCV 的项目【英文标题】:Project with openCV won't build because of opencv dependencies 【发布时间】:2016-04-29 12:17:54 【问题描述】:

我已经从源代码构建 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

【问题讨论】:

显示您的Makefile 或编译命令 g++ -std=c++11 -Wall -gdwarf-3 -o dist/Debug/GNU-Linux-x86/rankcollection build/Debug/GNU-Linux-x86/QueryCollection.o build/调试/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 不是评论 - 很难阅读。请点击您的问题下方的edit 并进行更新。 【参考方案1】:

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

但我仍然不知道为什么我会遇到问题。

【讨论】:

以上是关于由于 opencv 依赖项,无法构建带有 openCV 的项目的主要内容,如果未能解决你的问题,请参考以下文章

opencv:如何在 Visual Studio 2005 中设置项目依赖项?

成功构建后,带有 Cuda 的 Python OpenCV 无法正常工作

带有不安全构建标志的 Swift 包依赖项:目标完整性错误

idea构建失败?

由于未能构建依赖项的发布版本,Maven 发布构建在 Jenkins 中失败

由于“检查依赖项”,在 XCode4 上构建缓慢