我直接在opencv官网下的包安装在win上,然后用vs去调用这些库,发现提示有warning.
我用的是c++17的标准.编译器和IDE是GCC10.2.1和VS2022都有.
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C6294 定义错误的 for-loop。未执行循环正文。 test_project C:\User_file\opencv\build\include\opencv2\core\matx.hpp 570
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C26495 未初始化变量 cv::MatStep::buf。始终初始化成员变量(type.6)。 test_project C:\User_file\opencv\build\include\opencv2\core\mat.inl.hpp 1239
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C26451 算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。 test_project C:\User_file\opencv\build\include\opencv2\core\utility.hpp 568
其实这些warning不影响正常使用,但是很碍眼,想知道为什么会出现warning.
而且看上去这些warning并不是兼容性问题,总不能gcc和msvc都报同样的warning吧?
我在Debian用gcc自己编译的时候也会出现warning,不理解msvc和gcc都对opencv库报warning是为什么.
想要了解为什么会出现warning,这库还是opencv官方已经编译好的,我只是直接调用罢了,都会出现warning.
不知道你这个问题是否已经解决, 如果还没有解决的话:跑一个opencv的官方例子,看还会报这个警告吗?来看是否是opencv还是代码本身的问题