c++ - libopencv_optflow 可能不包含在 optflow.hpp 中指定的所有函数定义
问题描述
我已经安装了OpenCV 4.0,并且在 Makefile 中我指定了 opencv 额外模块的路径,但是当我尝试运行我的GoLang项目时,该项目使用C++中创建的 OpenCV 函数(我已将C++代码包装在我包含在GoLang中的C库中) 我得到“未定义的参考错误”。
问题是,当我将自己定位在包含我需要的函数声明的/usr/local/include
文件时,但我的文件夹(我假设应该位于源文件的位置)是空的。或者根本没有源文件并且所有源文件都已内置,在这种情况下,我仍然不确定为什么会收到“未定义的引用”错误消息。optflow.hpp
/usr/local/src
/usr/local/lib
是不是已经建好的optflow.hpp和libopencv_optflow库不兼容?如果是这样,我该如何解决?
有什么建议么?
解决方案
使用 Cmake 配置构建和链接的参数要好得多。由于 -std=c++11 可能会出现这种问题,但是 Cmake 为您的 make 文件准备了非常复杂的设置,典型的结果是像您这样的问题并且找不到 imread 等等。我在为 opencv 4 设置 make 文件以直接从 Visual Studio Visual Studio构建项目时遇到很多麻烦
另一个想法是链接库。您可能会错过 opencv 库使用的动态依赖项中的某些内容。Cmake 为你解决了这个配置。
g++" -W"switch" -W"no-deprecated-declarations" -W"empty-body" -W"conversion" -W"return-type" -W"括号" -W"no-pointer-sign" - W"no-format" -W"uninitialized" -W"unreachable-code" -W"unused-function" -W"unused-value" -W"unused-variable" -std=c++11 -w -fno -strict-aliasing -I "/usr/local/include/opencv4/opnecv2" -g0 "g++" -O2 "3600000" -fno-threadsafe-statics -D "NDEBUG" -W"switch" -W"no-deprecated -declarations" -W"empty-body" -W"conversion" -W"return-type" -W"括号" -W"no-format" -W"uninitialized" -W"unreachable-code" -W"unused -function" -W"未使用值"-W"未使用变量"-fno-rtti -fno-omit-frame-pointer -std=c11 -fno-exceptions "1" -o r
和链接器参数为
Linker opencv 4 configuration part is more tricky
库依赖 -l"opencv_core" -l"opencv_imgcodecs" -l"opencv_imgproc" -l"opencv_video" -l"opencv_videoio" -l"pthread" -l"jpeg" -l"gcc_s" -l"stdc++" -l" tbb" -l"rt" -l"dl" -l"m" -l"z" -l"png16" -l"c"
您只是在没有 -l opencv_core opencv_imgcodecs opencv_imgproc opencv_video opencv_videoio pthread jpeg gcc_s stdc++ tbb rt dl m z png16 c 的情况下将以下值填充到库依赖项选项中
推荐阅读
- java - 即使放置文件路径后,也无法在 Windows 中找到 Java
- laravel - Laravel 检查关系是否为空
- powershell - 在脚本powershell中运行命令dos
- android - Android:在GridView中设置1行的高度与其他行不同
- javascript - ES6 javascript 如何处理一系列异步/等待函数中的错误
- javascript - Sequelize Model.prototype.(customFunction) 不工作
- angular - 在离子评级上应用价值
- dart - Flutter:主题未应用于文本小部件
- javascript - 如何在 React 中使用 setInterval?
- c# - 如何在授权类文件中随机生成一个数字或字符