libopencv_optflow可能不包含在optflow.hpp中指定的所有函数定义
libopencv_optflow possibly does not contain all the function definitions that are specified inside 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等。我有很多麻烦,直接从visual studio visual studio 为opencv 4构建项目设置制作文件
另一个想法是关联的libs。您可能会从opencv-lib使用的动态依赖关系中遗漏一些内容。Cmake为您解决了此配置。
g++"-W"switch"-W"没有不推荐使用的声明"-W"空正文"-W"转换"-W"返回类型"-W"圆括号"-W"没有指针符号"-W"无格式"-W未初始化"-W"无法访问的代码"/W"未使用的函数"-W是未使用的值"-W是不使用的变量"-std=c++11-W-fno严格别名-I"/usr/local/include/opcv4/opnecv2"-g0"g++"-O2"3600000"-fno线程安全静态-D"NDEBUG"-W是switch"-W没有不推荐使用的声明"-W"空正文"-W"转换"-W"返回类型"-W"括号"-W"无格式"-W未初始化"-W不可访问的代码"-W没有使用的函数"-W没有未使用的值"-W不使用的变量"-fno rtti-fno省略帧指针-std=c11-fno异常"1"-o r
和链接器参数作为
Linker opencv 4 configuration part is more tricky
库依赖项-l"opencv_core"-l"opencv_imgcodecs"-l"opencv_imgproc"-l"opencv_video"-l"pthread"-l
您只是在没有-l的情况下将以下值填充到库依赖项选项中opencv_coreopencv_imgcodecsopencv_imgprocopencv_videoopencv_videiopthreadjpeggcc_sstdc++tbbrtdlmzpng16c
- 在提升multi_index容器中,是否定义了"default index"?
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 部分定义/别名模板模板参数
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- #为""定义宏;静态";针对不同的上下文
- 如何确保C++函数在定义之前声明(如override关键字)
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 在命名空间中定义函数还是限定函数
- 此代码是否违反一个定义规则
- 编译C++时未定义的引用
- 不同翻译单元中不可重载的非内联函数定义
- 为什么在定义函数之前先声明它
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 在类定义之后定义一个私有方法
- 使用用户定义函数的字符串反转
- 用户定义函数中的指针和输入
- vscode g++链路故障:体系结构x86_64的未定义符号
- libopencv_optflow可能不包含在optflow.hpp中指定的所有函数定义