EasyClangComplete CMake环境修复

2023-11-01

Sublime使用EasyClangComplete插件写代码时,如果你的文档目录或它的上层目录下有一个CMakeLists.txt文件,那么插件会去调用cmake命令编译这个文件。如果系统没有装cmake或者cmake编译出错,就会导致编辑器本身出现一些奇怪的现象,比如:

  1. #include无法弹出quick panel选取头文件
  2. 选择文本后键入双引号无法自动前后包住文本,而是会将其删掉

这是在EasyClangComplete的配置文件中规定的:

在这里插入图片描述

要修复这个问题,除了直接把配置文件注释掉,还有以下方案:

  1. 安装CMake,使插件能够调用cmake命令
  2. (针对custom的编译环境)修改cmake命令参数,以符合本机环境

CMake的安装直接去官网下载安装包即可,略过。

针对非标准的编译环境,比如在windows下不使用msvc,而是mingw,还需要向cmake命令指定合适的编译参数,不然会弹出如下找不到nmake的报错:

Error in file:
PATH\CMakeLists.txt

-- Building for: NMake Makefiles
CMake Error at CMakeLists.txt:5 (project):
  Running

     'nmake' '-?'

       failed with:

          系统找不到指定的文件。


          CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
          CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
          -- Configuring incomplete, errors occurred!
          

指定cmake编译器的方式在命令行中如下

cmake -G "MinGW Makefiles"

对应的CMake文档描述

在EasyClangComplete中,需要修改对应的配置文件

在这里插入图片描述

"flags_sources": [
    {
        "file": "CMakeLists.txt",
        "flags": ["-GMinGW Makefiles"]	// 增加部分
    },
    {"file": "compile_commands.json"},
    {"file": "CppProperties.json"},
    {"file": "c_cpp_properties.json"},
    {"file": ".clang_complete"},
],

注意在插件官方文档中flag名字为ecc_flags_sources,可能是旧版本的名字未更新,实际应该没有ecc_前缀。另外这里是复制了插件默认配置中的内容,写到了对应的user配置中,养成尽量不动原配置文件的好习惯。

实测不能像命令行中一样,写成"flags": ["-G \"MinGW Makefiles\""],会产生报错,原因未知。

最后可能还会遇到如下问题:

Error in file:
PATH\CMakeLists.txt

CMake Error: Error: generator : MinGW Makefiles
Does not match the generator used previously: NMake Makefiles
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.

这是由于插件自己生成的缓存文件CMakeCache.txt和更新后的编译器参数相冲突,手动删除CMakeCache.txt即可。用everything软件搜索该文件,发现在以下路径:

C:\Users\【用户名】\AppData\Local\Temp\EasyClangComplete\cmake_builds\xxx

将该路径下的内容全部删去,下次插件就会重新从头开始按照正确的编译器参数生成所需文件了。到此为止问题应该得到解决。


Tip: 利用EasyClangComplete的verbose选项,在上面对插件进行debug的时候可以显示更多信息:

"verbose" : true,

所有的调试信息都是在sublime console中显示的,调出方式如下:

在这里插入图片描述
在上面的图标处右键选择console:
在这里插入图片描述
或者在菜单栏View->Show Console也可以。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EasyClangComplete CMake环境修复 的相关文章

  • sublime 自动补全

    preferences gt settings 在右边窗口最后位置添加 auto complete true 出现打过的单词 auto match enabled true 自动补全括号或引号
  • Sublime 全选后光标在每一行、全局替换、全局换行

    Sublime 全选后光标在每一行 全局替换 全局换行 做个记录 多行汇总成一行 以逗号标识分隔 全选后 使用快捷键Ctrl Shift L 即可在每一行的后面显示光标 再使用End或Home键进行前后移动 输入逗号再按回车键即可 将逗号分
  • Latex中点乘、希腊字母、花写字体等

    Latex中点乘 希腊字母等 Latex中点乘 希腊字母等 Latex中的乘法 希腊字母表 花写字体 Latex中点乘 希腊字母等 使用Latex进行公式编辑时 由于某些符号不经常用到 老是忘记 所以谢一篇文章来总结 记录一下 Latex中
  • 将日志打印的SQL组装为可执行SQL_sublime版

    java项目日志打印的sql和条件参数是分离的 使用起来很不方便 之前为了解决这种问题 使用notepad 录制宏解决了这个问题 但是后期不方便维护 遂转用sublime 这个跟notepad 比起来有些东西不是很习惯 但是好处是插件可以自
  • 前端小作业~基础知识点串接

    包子们 这次网页虽然不难 但是扣细节的地方多啊 都是最近学的零零散散的知识的拼接与整合 也是尽力而为了 搞了将近四个小时
  • Kali下安装sublime text3

    Kali下安装sublime text3 文章目录 一 sublime简介 二 kali下安装sublime的步骤 1 下载安装包 2 将安装包复制到某个文件下 3 在终端下打开文件 总结 一 sublime简介 Sublime Text
  • Sublime Text 3 配置python 智能提示

    Sublime Text 3 配置python 智能提示 一 安装使用插件管理包 Package Control 安装教程参考地址 使用方法 安装成功后会显示出package control 点击package control 搜索 ins
  • 如何在sublime Text3实时运行js代码?

    安装Node js https nodejs org en 为sublime text3添加编译系统 Tools gt Build System gt New Build System 在打开的界面中添加 cmd node file sel
  • Sublime Text的安装与配置记录

    Sublime Text作为一款优质的Code编辑器 已更新至第4个版本 本文记录关于Sublime Text 4 版本4126 的安装 汉化 以及常用配置方法 安装 访问官网下载安装包 https www sublimetext com
  • sublime列编辑状态

    从notepad 转到sublime 感觉sublime的列编辑没有notepad 好用 一个是先入为主的问题 notepad 进行列编辑是alt 左键 notepad 进行列选择时 选择的行没有编辑也是可以选中的 sublime只能选中编
  • Sublime Text3 BracketHighlighter

    BracketHighlighter 括号匹配插件 修改Preferences gt Package Settings gt BracketHighlighter gt Bracket Settings 修改settings User文件
  • Sublime Text 3 无法运行install package 的有效解决方法

    Sublime Text 3 无法运行install package 的有效解决方法 无法找到install package命令的解决方法 能搜到install package 但点击install package没反应的解决方法 无法找到
  • Sublime Text 3 安装PackageControl

    操作步骤 1 复制安装信息 import urllib request os hashlib h 6f4c264a24d933ce70df5dedcf1dcaee ebe013ee18cced0ef93d5f746d80ef60 pf Pa
  • Sublime Text 常用插件

    文章目录 ConvertToUTF8 BracketHighlighter Emmet JsFormat Compact Expand CSS Command Color Highlighter SublimeTmpl Alignment
  • Sublime4如何自定义代码补全内容

    1 先进入如下文件夹 2 这里举C 为例子 其他语言类似 创建C 文件夹 并在C 文件夹内创建Snippets文件夹 3 在Snippets文件夹下创建以 sublime snippet为后缀的文件 4 在文件中自定义代码补全的信息
  • Sublime Text 3 全程详细图文教程(转载)

    今天被群里大佬安利了一款文本编辑软件 找了一下相关教程 一 前言 使用Sublime Text 也有几个年头了 版本也从2升级到3了 但犹如寒天饮冰水 冷暖尽自知 最初也是不知道从何下手 满世界地查找资料 但能查阅到的资料 苦于它们的零碎
  • undefined control sequence .....等系列问题

    undefined control sequence includegraphics Undefined control sequence LN col undefined control sequence 等问题 在文章最前面的 docu
  • 修改sublime配置让其显示文件编码格式

    1 下载sublime并安装 2 点击菜单栏Preferences 然后在Preferences里面点击Setting 3 然后在跳出来的窗口添加 show enconding true 4 随便打开一个文件就可以在底部查看文件编码格式
  • Sublime Text 4 for Mac/win: 提升前端开发效率的编辑神器

    对于前端开发者来说 一个高效的代码编辑器是必不可少的工具 而Sublime Text 4作为一款著名的跨平台编辑器 不仅提供了丰富的功能 还能够极大地提升开发效率 首先 Sublime Text 4拥有强大的代码编辑功能 它支持多种编程语言
  • 提升编程效率,Sublime Text 4 for Mac 让代码编辑更高效!

    作为一名开发人员或程序员 一个高效且功能强大的文本编辑器是必不可少的工具 而 Sublime Text 4 for Mac 正是为满足这一需求而设计的 无论你是初学者还是经验丰富的专业人士 Sublime Text 4 都将成为你编程生涯中

随机推荐

  • Linux基础网络设置和Samba文件共享服务

    作者 小刘在C站 个人主页 小刘主页 每天分享云计算网络运维课堂笔记 努力不一定有收获 但一定会有收获加油 一起努力 共赴美好人生 夕阳下 是最美的绽放 树高千尺 落叶归根人生不易 人间真情 目录 一 Linux基础网络设置 1 服务突然中
  • BUG :failed with repodata from current_repodata.json, will retry with next repoda

    在anaconda里面再次冲洗进行安装pytorch 时 具体步骤可见安装笔记 报错 failed with repodata from current repodata json will retry with next repoda 应
  • 欧拉定理(降幂)

    欧拉定理 定理 感觉这个定理降幂的时候用的多一点 题1 题面 思路 对于每一个数字ai 出现的次数为 A i C n
  • 基于阿里移动端积木框架Tangram自定义首页卡片

    Tangram 移动端框架介绍点击打开链接 项目背景 公司app首页需要完全做到可配置组合提高运营可维护性 由移动端选择了Tangram作为卡片布局框架 此框架有最大的一个好处是 同一份JSON格式数据渲染出来的界面安卓和IOS风格一直 对
  • Unable to open debugger port (127.0.0.1:50573): java.net.SocketException

    现象 IDEA tomcat启动项目报Unable to open debugger port 127 0 0 1 50573 java net SocketException 的错误 导致无法完成启动 解决方法 1 打开cmd 2 net
  • 摘:为什么老毛桃初始化后有了两个分区?

    为什么老毛桃初始化后有了两个分区 答案 制作出来的启动盘支持uefi启动就要有uefi分区 同时也是为了支持两种启动方式 传统mbr和uefi 提高兼容性 原文 http ask zol com cn x 5938014 html 转载于
  • mmsegmentation中如何输出mask

    在mmaegmentation中默认的输出结果是将mask与原图重叠在一起 有时候我们需要输出只有mask的图 具体修改代码如下 在tools test py中进行如下设置 如果没有标签的测试集中 在 eval参数中设置为None即可 pa
  • c++学习笔记-----this指针、构造函数、析构函数和友元函数

    一 this指针 1 概念理解 说起this指针 我个人的理解就是假如我们生产了同一种型号的两个杯子 当张三要买的时候 我们就用一个工具 this指针 给该杯子底部刻上张三的名字用来识别是张三 当李四要买 我们就给杯子刻上李四的名字 这样虽
  • 自顶向下、逐步求精

    自顶向下 逐步求精 自顶向下 逐步求精是计算机编程里面常用的思路 自顶向下 将大问题分解为各个小问题 再逐步求解 逐步求精 对于每个问题逐次细化 不断完善 例子 就如对一个洗衣机程序 先将他的洗衣这个大问题分为多个小问题 选择 洗衣模式 输
  • 修复Ubuntu18.04与Windows 10双系统丢失grub引导界面

    修复Ubuntu18 04与Windows 10双系统丢失grub引导界面 问题描述 最近因为学习Linux而装了Windows10 ubuntu的双系统 安装后的前几天还一切正常 每次开机grub都会让人性化的让我选择想要进入的系统 好景
  • IOS开发 返回到指定的视图控制器

    for UIViewController controller in self navigationController viewControllers BOOL isKindOfClass controller isKindOfClass
  • 关于v-if判断用法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt
  • Qt调用主界面ui

    一 适用情景 在其他类中使用主界面ui this 控件操作等 二 步骤 首先 子类需要包含主界面的头文件和ui xx h文件 声明主界面类 然后使用构造函数把主界面的指针传递给子类 子类头文件 ifndef ONEUI H define O
  • 为Linux系统增加中文字体支持:解决显示问题的三种方法

    Linux 增加中文字体支持 在使用 Linux 操作系统的过程中 用户经常会遇到中文字体显示问题 导致一些界面上的文字不能正确显示 为了解决这个问题 我们可以通过以下方法来增加中文字体支持 一 安装中文字体 要安装中文字体 可以使用 XF
  • Kafka 丢数据问题

    Kafka是最初由Linkedin公司开发 是一个分布式 分区的 多副本的 多订阅者 基于zookeeper协调的分布式日志系统 也可以当做MQ系统 常见可以用于web nginx日志 访问日志 消息服务等等 Linkedin于2010年贡
  • Go context.WithCancel()的使用

    WithCancel可以将一个Context包装为cancelCtx 并提供一个取消函数 调用这个取消函数 可以Cancel对应的Context Go语言context包 cancelCtx 疑问 context WithCancel 取消
  • pytorch学习笔记-num_workers的设置

    示例 from torch utils data import DataLoader train loader DataLoader dataset train data batch size batch shuffle True num
  • 把渲染当作核心任务

    和leader聊了一段时间 他的思路是完全底层自行开发 他写代码20多年了 实力是很强悍的 关于是否使用UE4 的shader 他的意思是可以学习后吃透了再写出来 但是不直接使用 搞pbr主要还是要看数学公式 遇到过一些问题 他往往能够解决
  • Kubernetes1.14 学习笔记二: 安装K8S

    一 安装rpm 包 rpm 制作过程参考上一节 https blog csdn net yulei qq article details 89205022 运行如下命令 root k8s x86 64 yum localinstall rp
  • EasyClangComplete CMake环境修复

    Sublime使用EasyClangComplete插件写代码时 如果你的文档目录或它的上层目录下有一个CMakeLists txt文件 那么插件会去调用cmake命令编译这个文件 如果系统没有装cmake或者cmake编译出错 就会导致编