ubuntu中vscode使用cmake插件编译C++出错“Error: Configured generator does not match with CMAKE_GENERATOR..【已解决】

目录

一、问题描述:

 二、解决方法:修改 vscode默认生成器 generator


一、问题描述:

        1、在ubuntu中使用vscode打开一个使用cmake编译的C++工程,无论是自动cmake、还是点击如图底部CMake、Build按钮,都可正常编译成功;

        2、命令行打开自动生成的目录:build,执行指令“ cmake .. ”成功、再执行make则报错,如下图:

         3、命令行在build目录中,执行  rm  -rf  *  删除所有生成的文件和目录,再次执行  cmake  ..   和 make  则成功,如下图:

        4、此时再点击底部按钮 CMake、Build 则报错,“Error: Configured generator does not match with CMAKE_GENERATOR found in cache.”,大意是已配置的生成器generator和cache发现的CMAKE_GENERATOR不匹配,如图:

 原来是cmake生成器CMAKE_GENERATOR配置有问题,百度搜索图中报错,没找到合适答案,于是仅搜索CMAKE_GENERATOR,则找到不少说明,如cmake的generator详解,发现有诸如以下说明:

1、cmake生成器会通过cmakelist.txt文件,生成适用于不同项目类型的makefile文件

2、

  • Unix Makefiles: 生成标准的UNIX makefile。 
  • 在构建树上生成分层的UNIX makefile。任何标准的UNIX风格的make程序都可以通过默认的make目标构建工程。生成的makefile也提供了install目标。
  • Ninja:生成.ninja工程
  • Xcode:生成Xcode工程

 而使用vscode底部CMake、Build按钮可正常执行时,即本文第一张图中结果,发现有这样两句:

[cms-client] Configuring using the "Ninja" CMake generator
[cms-client] Configuring using the "Ninja" CMake generator

看到此处问题已定位清楚:

        原来vscode默认使用的时Ninja生成器,而系统默认的是Unix Makefiles生成器

 二、解决方法:修改 vscode默认生成器 generator

发现5处generator相关的设置:

        前两处属于插件CMake Integration设置,可明显看到第二处选择了Ninja,若安装了CMake Integration插件,将此处Ninja改选为Unix Makefiles

        后三处属于插件CMake Tools设置,在第一处输入框中填入Unix Makefiles,删除自动生成的build目录,重启vscode即可

        而后,无论是使用vscode的cmake插件,即vscode底部按钮CMake、Build生成和编译工程,还是在命令行使用cmke  ..   和   make指令,都是默认生成标准的UNIX makefile文件

总结:发现问题并不怕,定位问题所在,一点一点搜索、查找总能找出解决办法

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值