关于opencv、Qt、msvc编译器之间的关系:
一、原则上用msvc哪个版本编译器编译的,那么在使用opencv时,就要用对应的msvc的编译器。否则有可能不兼容。
二、高版本的msvc编译器兼容低版本的编译器,反之,不兼容。也就是说用msvc2017编译的opencv,只能在msvc2017或更高版本的编译器的环境中使用,不可以降级使用,否则编译失败。
三、我遇到的问题:
我有一个opencv4.8.0,当时编译时用的编译器是msvc2022的编译器编译的,我在Qt中用msvc2017编译器环境使用opencv,编译时报错。然后,我在官网上下载了一个opencv4.1.0,又在Qt msvc2017编译器环境下使用,结果编译成功。由此可以看出,你所用的opencv在编译时的编译器版本很重要,在使用时编译器要对应opencv的编译器。否则编译可能会失败!
秋风写于淄博