openCV重新编译源代码出错
我想编译一下openCV4.2的源代码,用cmake生成了工程后,右键module-->opencv_world-->重新生成,会报错。
5>J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\include\ade/util/range_iterator.hpp(34): error C2100: 非法的间接寻址 (编译源文件 J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\source\check_cycles.cpp)
5> J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\source\check_cycles.cpp(33): note: 参见对正在编译的类 模板 实例化“ade::util::Range::IterableRange<ade::util::Range::MapRange<ade::Node::EdgeSetRange,ade::passes::visit::<lambda_d544ea4b0cac61dc4380fb3b2b6bb059>>>::iterator”的引用
5>J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\include\ade/util/assert.hpp(86): error C2059: 语法错误:“<L_ATTRIBUTE_SPECIFIER>” (编译源文件 J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\source\check_cycles.cpp)
5>J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\include\ade/util/assert.hpp(86): error C2893: 未能使函数模板“void ade::throw_error(ExceptionType &&)”专用化 (编译源文件 J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\source\check_cycles.cpp)
5> J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\include\ade/util/assert.hpp(86): note: 用下列模板参数: (编译源文件 J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\source\check_cycles.cpp)
5> J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\include\ade/util/assert.hpp(86): note: “ExceptionType=ade::passes::CycleFound” (编译源文件 J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\source\check_cycles.cpp)
5>J:\opencv2\3rdparty\ade\ade-0.1.1f\sources\ade\source\check_cycles.cpp(30): fatal error C1075: 左侧的 大括号“{” 与文件结尾不匹配
这个都是源文件当中的错误,不了解怎么修改呀。现成的opencv_world420.dll或者是opencv_world420d.dll全都是x64的,我想弄个x86的版本,这个咋弄的?
或者谁了解下如何修改源文件当中的错误呢?
另外,还发现使用源文件当中的include会有大量的路径错误,如果在vs下面编译,会报错,必须手工修改include..
我看了一些相关的资料,感觉这个库文件就是dll+lib的,如果希望采用动态方式加载,或者
#pragma comment(lib,"opencv_world420d.lib")这样弄的话,哪几个是必须添加的呢?