当我在opencv中使用calib3d.hpp时重新定义类
redefinition of class when I use calib3d.hpp in opencv
我正在一个C++项目中开发ubuntu 16.4,我正在尝试使用opencv2/calib3d.hpp中的函数,但没有任何成功。
例如,使用 cv::P oint3d 我没有任何问题,但是一旦我添加,我就会收到以下错误:
/usr/local/include/opencv2/features2d/features2d.hpp:69:错误: 重新定义"类 cv::KeyPoint"类CV_EXPORTS_W_SIMPLE 关键点
这是我的代码:
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/calib3d.hpp>
int main()
{
std::cout << "cv hello"<< std::endl;
return 0;
}
当我使用" pkg-config --modversion opencv"来使用opencv版本时,我得到"3.1.0"
我的想法是我安装了几个版本的 opencv 并且存在冲突。我在想,因为在完成的命题中,当我添加
#include,我有几个等价的calib3d.hpp命题。
怎么知道我是否安装了多个版本?
不确定这是否要付出很多努力,但您可以使用 Cmake 指定 OpenCV 版本。
find_package(OpenCV 3.2 REQUIRED PATHS "/path/to/OCV3.2/install/dir/")
看看@gabriel的答案:
https://stackoverflow.com/a/45752688/10889595
相关文章:
- 定义C++新的环境变量并在 bat 文件中使用它
- 是否可以使用单个定义定义函数的常量和常规版本?(使用模板,自动,decltype等)
- 从使用概念定义的函数返回新对象
- 如何在C++中为 if 和 else 语句定义新行为
- 如何从 C++ 中的现有模板函数定义新函数
- 自定义分配器,包括放置新案例
- 正在通过const-ref未定义的行为捕获新构造的对象
- 如何在CPropertySheet中定义新颜色
- 谁定义新操作员
- 未定义的符号'fixed_address_empty_string':带有protobuf的新张量流运算
- 新的C ,未定义的参考
- boost :: fibonacci_heap:带有比较器重新定义圆形定义错误的嵌套定义
- 宏,用于定义带有添加前缀的新宏
- 取消脱壳:使用模板在多行类型定义中添加一个尖括号后的新行
- C 通过Typedef定义新类型
- 通过在此指针上放置新位置重新初始化对象时未定义的行为
- 在 ss.clear() 之后使用 ss.str( " ") 用于新定义的字符串流
- Eclipse CDT将方法定义定义到标头文件
- 是标头文件中使用“新”定义的成员指针泄漏
- LEX 程序中的未定义定义