Windows7下CMake无法找到Visual Studio实例的OpenVINO编译求助
解决Windows 7下CMake找不到Visual Studio实例的问题
看了你的情况:Win7 64位系统,已经搞定了OpenVINO的AVX2 DLL适配,setupvars.bat也运行正常,但CMake用Visual Studio 14 Win64、Visual Studio 16生成器时找不到VS实例,输错成Visual Studio 20又提示生成器无效。这问题主要出在Win7的兼容性限制和CMake生成器的规范上,下面是针对性的解决步骤:
1. 先确认Visual Studio版本是否适配Win7
Windows 7只支持Visual Studio 2017及更早版本——VS2019(对应生成器Visual Studio 16)已经彻底放弃了Win7支持。如果你装的是VS2019或更高版本,这就是CMake找不到实例的核心原因:
- 要是你装的是VS2017,务必确认安装了C++开发工作负载(CMake需要用到VS的编译器、MSBuild这些工具链组件,没装的话会识别失败);
- 如果装了新版VS,要么降级到VS2017,要么去查下是否有Win7兼容扩展(不过新版VS的Win7支持非常有限,不推荐折腾)。
2. 修正CMake生成器的正确写法
不同VS版本对应的CMake生成器名称是严格对应,写错就会报错:
- VS2015对应的正确生成器:
Visual Studio 14 2015 Win64(你之前写的Visual Studio 14 Win64缺了年份标识,CMake没法正确识别); - VS2017对应的正确生成器:
Visual Studio 15 2017 Win64; - 另外,
Visual Studio 20是完全错误的写法,CMake根本没有这个生成器选项。
给你举个正确的CMake命令例子(针对VS2015 64位):
cmake -G "Visual Studio 14 2015 Win64" ..
3. 让CMake能正确识别VS环境
就算装了VS,CMake也可能因为环境变量没配置全找不到实例,可以试试这两个办法:
- 打开Visual Studio自带的开发者命令提示符(比如VS2015的
Developer Command Prompt for VS2015),在这个窗口里运行CMake命令——这个提示符已经自动配置好了VS所有的环境变量,CMake能直接找到工具链; - 手动给CMake指定VS的MSBuild路径,用
-DCMAKE_VS_MSBUILD_COMMAND参数,比如:
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_VS_MSBUILD_COMMAND="C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" ..
4. 检查CMake版本的兼容性
你说装了最新版CMake,但最新版CMake已经不再支持Windows 7和旧版VS了。建议降级到CMake 3.20.x版本(这是最后一个官方支持Win7的CMake大版本),新版本CMake对Win7的兼容性极差,容易出现各种识别问题。
最后提一句:你处理AVX2 DLL的操作和CMake找不到VS实例的问题没关系,不用再调整这部分,先把VS版本、CMake版本和生成器配置弄对就行。
内容的提问来源于stack exchange,提问作者user11585758
相关产品推荐
相关产品推荐

