Windows7+VS2017安装Gazebo8遇VS版本不符错误的解决求助
解决Gazebo8在VS2017下CMake版本检测错误的问题
我碰到过不少开发者在Windows7上用VS2017编译Gazebo8时遇到这个奇怪的报错——明明VS版本远高于要求的2013,却被CMake判定版本不够。核心原因是Gazebo8发布时VS2017刚推出,它的CMake检测脚本没适配新的VS版本,或者你的CMake版本太老,识别不了VS2017。下面给你几个可行的解决办法:
方法1:升级CMake到支持VS2017的版本
VS2017需要至少CMake 3.7及以上版本才能被正确识别,如果你的CMake版本低于这个,先更新CMake,之后再重新运行配置命令。
方法2:手动指定VS版本运行CMake
跳过自带的..\configure脚本,直接用CMake命令行明确指定VS2017版本,避免自动检测出错。先打开VS2017的开发者命令提示符(或者在普通命令行里先执行"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat"),然后运行:
cmake .. -G "Visual Studio 15 2017 Win64"
如果是32位编译,去掉命令里的Win64即可。
方法3:修改Gazebo的CMake版本检测脚本
如果上面的方法都不行,你可以直接修改Gazebo源码里的检测逻辑:
- 找到源码目录下的
cmake/DefaultCFlags.cmake文件 - 打开后定位到报错的第64行附近,它的判断逻辑大概是检查
MSVC_VERSION是否低于某个值(比如VS2013对应1800) - 把判断条件里的版本号改成VS2017对应的
MSVC_VERSION(VS2017的版本号范围是1910~1916),比如把原来的:
修改为:if(MSVC_VERSION LESS 1800) message(FATAL_ERROR "Gazebo requires VS 2013 or greater.") endif()if(MSVC_VERSION LESS 1910) message(FATAL_ERROR "Gazebo requires VS 2013 or greater.") endif() - 保存文件后重新运行
..\configure命令
方法4:确认VS2017的C++组件已安装
有时候CMake识别不到VS,是因为你没安装VS2017的C开发组件。打开VS2017的安装器,检查是否勾选了“桌面开发C”相关组件,没装的话补上,重启命令提示符后再尝试配置。
内容的提问来源于stack exchange,提问作者Geoffrey Vienne
相关产品推荐
相关产品推荐

