个人体验结果

如果是CMake或者要跨平台的话,建议使用CLion

像我在看书写练习题的话,Clion使用cmake编译c/c++源码更简单上手使用。

如果项目不大,两者都可以。如果关联子项目或第三方库多的话,建议用VS,

编译速度

CLion的工具链设置为MinGW,编译运行速度明显快于使用VS做为工具链

clion使用gcc编译源代码时,第一次会打印cmake的日志感觉上慢一些,但是源代码没修改时,第二次运行速度非常快,而vs在运行程序时,打印内容更少,速度上感觉快一些

调试方面

知乎上看到这样的对比:调试工具角度,VS的调试工具集(内存分析、性能分析、按地址查看内存、汇编文件查看、断点调试等等)基本在IDE领域无敌。

实际我的体验结果,在断点时查看变量的值,Clion感觉更好的

运行单文件

vs运行单个文件比较麻烦,因为新手学习阶段每个例子都是写在不同的文件中的,使用cmake就方便很多了

其它

c++中不能起中文文件名,但是C#和Python是可以取中文文件名

CLion配置不同编译器

我的CLion版本:2020.3.4

编译器可配置这几种:MinGW,Cygwin,Visual Studio,WSL,远程主机

我本机配置的是mingw和VS

使用vs的编译器

在我的一台电脑上,已经安装了vs2013和vs2017,在clion中新增编译工具链为VS,clion会自动读取vs的安装路径,然后就可以编译C和C++项目。

如果是vs2012,则指定这个目录:C:\Program Files (x86)\Microsoft Visual Studio 11.0\

使用mingw

其它事项

建议关闭【windows defender】或者添加工程目录为排除目录。

这是clion的提示原文:

windows defender可能影响性能,从防病毒扫描中排除IDE和项目目录,或将IDE进程添加为排除项

下载MinGW

如果是开发windows程序请下载:x86_64-win32-seh

完整的下载列表:MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net

关于seh与sjli,posix与win32的区别请查看:《MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本 - 知乎 (zhihu.com)》

添加C:\mingw64\bin到环境变量path中

CLion配置MinGW方法

  1. 添加C:\mingw64\bin到环境变量path中

  2. 打开CLion的设置,找到工具链,添加minGW,在环境中选择mingw的根目录:C:\mingw64

  3. 等转圈一会儿,即可开始编写C和C++代码了

详细步骤:《如何安装Clion集成开发工具》

CLion中文乱码

在Clion中输出中文会乱码,但vs2017中不会乱码,CLion中的乱码解决,但有几个文件中输出还是会乱码。

  1. 按住 Ctrl+Shift+Alt+/ ,选择Registry(注册表)

  2. 不要勾选:run.processes.with.pty

方法出自:Clion 中 的乱码问题正确解决方案(来自官方技术支持) - 知乎 (zhihu.com)

CLion创建项目和打开目录的区别?

经过实践,这两个没有区别,都可以正常编写和编译运行C++程序

如果使用打开目录,会提示代码洞察功能无法使用

VS

开发工具:vs2017

在vs2017中新建项目就是新建c++,然后把文件后缀改为c,具体可参考这篇:Visual Studio 2017 中创建 C 语言项目 - 知乎 (zhihu.com)

Visual Assist X 安装、使用 和 快捷键_freeking101的博客-CSDN博客

Visual Assist 特性和技巧 (2017) - 知乎 (zhihu.com)

TODO 拷贝VS的VC目录

在工具链中,对于vs2012,使用的是这个目录:C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin

参考资料

开发C语言的3款神器,VS2019、VScode和IntelliJ Clion - 简书 (jianshu.com)

尝试一下Clion,抛开VS2017吧_xmcy001122的专栏-CSDN博客_clion vs

c和c++开发工具之clion和vs的更多相关文章

  1. 10款Mac上程序员装机必备的开发工具推荐和下载

    10款Mac上程序员装机必备的开发工具推荐和下载 使用Mac的用户主要有两大类:设计师和程序员,为各位程序员童鞋推荐10个Mac上非常棒的开发工具和辅助工具,分享软件专题[10款Mac上程序员装机必备 ...

  2. 【Machine Learning】Python开发工具:Anaconda+Sublime

    Python开发工具:Anaconda+Sublime 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现 ...

  3. XCodeGhost表明:为了安全,开发工具应该从官方网站下载

    今天的热门话题就是XCode编译器,这个神器在火热的移动互联网浪潮下也被人利用了,据文章分析 (XCode编译器里有鬼 - XCodeGhost样本分析)http://www.huochai.mobi ...

  4. 微信小程序开发工具测评

    1月9日微信小程序正式上线.很多企业都希望能在这个.但是在技术开发的问题上,却不知道该如何下手.经过一些程序员不辞辛苦连夜测试,终于从十余款工具呕心沥血筛选出四款比较靠谱实用的微信小程序开发工具.接下 ...

  5. Python 环境搭建,开发工具,基本语法

    python环境 https://www.python.org/downloads/ 现在pthon有两个版本 一个是3.5系列的 , 一个是2.7系列的.建议用3.5版本的 开发工具 PyCharm ...

  6. Chrome 开发工具之Timeline

    之前有说到Element,Console,Sources大多运用于debug,Network可用于debug和查看性能,今天的主角Timeline更多的是用在性能优化方面,它的作用就是记录与分析应用程 ...

  7. Chrome 开发工具之Sources

    Sources面板主要用于查看web站点的资源列表及javascript代码的debug 熟悉面板 了解完面板之后,下面来试试这些功能都是如何使用的. 文件列表 展示当前页面内所引用资源的列表,和平常 ...

  8. Chrome 开发工具之Elements

    友情提示:全文图片高能,如使用手机阅读,请确保在wifi情况下或者流量充足.图片有点渣,也算辛苦做出来的,请别嫌弃- Elements面板主要展示当前页面的组织结构,在如今的应用程序中,HTML页面初 ...

  9. Chrome 开发工具之Console

    前段时间看git的相关,记的笔记也大致写到了博客上,还有些因为运用不熟,或者还有一些疑惑点,暂时也不做过多纠缠,之后在实践中多运用得出结论再整理分享吧. 工欲善其事,必先利其器.要想做好前端的工作,也 ...

  10. Android 常用开发工具以及Mac常用软件

    Android 常用的开发工具记录.其中包括AndroidStudio(IDEA)插件.Mac 上好用的软件以及国内知名Android开发者博客等. Android Studio 插件 codota ...

随机推荐

  1. 火山引擎 DataTester 应用故事:一个 A/B 测试,将产品 DAU 提升了数十万

      更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 疫情让线下的需求大量转移到线上,催生出了远程办公.网络授课.线上健身等新的生态现象.如何更好地为用户服务,提升 ...

  2. 火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0(中)

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,<火山引擎云原生数据仓库 ByteHouse 技术白皮书>正式发布.白皮书简述了 ByteHou ...

  3. C++岗位面试真题宝典 -- 操作系统篇

    2.1 Linux中查看进程运行状态的指令.查看内存使用情况的指令.tar解压文件的参数. 参考回答 查看进程运行状态的指令:ps命令."ps -aux | grep PID",用 ...

  4. python生成word文档

    python生成word文档,感觉比java生成方便很多 下面看看步骤 1.环境 pip install python-docx 2.准备一张需要插入word中的图片monty-truth.png 3 ...

  5. S3C2440移植uboot之支持NORFLASH

      上节S3C2440移植uboot之支持NAND启动修改了代码支持了NAND启动.这节我们分析uboo使其支持NORFLASH的操作. 目录 1.分析启动错误 2.修改代码 3.在匹配数组中添加我们 ...

  6. 《3D编程模式》写书-第4次记录

    大家好,这段时间我完成了"再看设计原则"的初稿,包括了设计基础.单一职责原则.依赖倒置原则.接口隔离原则.合成复用原则.最少知识原则.开闭原则 目前我已经完成了所有的初稿,后面会进 ...

  7. 小白学标准库之反射 reflect

    1. 反射简介 反射是 元编程 概念下的一种形式,它在运行时操作不同类型的对象,检查对象的类型,大小等信息,对于没有源代码的包反射尤其有用. 设想一个场景,读取一个包中变量 a 的类型,并打印该类型的 ...

  8. spring--Bean的作用域及应用场景

    这六种Spring Bean的作用域适用于不同的应用场景: Singleton: 在Spring IoC容器中仅存在一个Bean实例,Bean以单例方式存在.无论我们是否在配置文件中显式定义,所有的S ...

  9. 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.10)

    一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...

  10. process-exporter 监控linux机器进程使用情况

    process-exporter 监控linux机器进程使用情况 背景 前期一直想进行 关于 IP地址的来源和目的地的监控 但是耗费了很多精力都没有搞定. 感觉应该去偷师一下安全监控软件的使用方式. ...