V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
DSM
V2EX  ›  问与答

macOS 上 C++ 开发选择什么 IDE 更好: CLion, Xcode, Visual Studio?

  •  
  •   DSM · 2023-03-26 12:09:59 +08:00 · 7050 次点击
    这是一个创建于 616 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人 cs 在读,计算机系统是 macOS ,学校 EECS 课程一般都用 C++

    从之前高中开始学 C++ 开始都是用的 CLion (.edu 邮箱激活),直到最近学校课程的一个项目从编写到调试完用了一周多。觉得时间过长,希望看看会不会其他的 IDE 更方便一些。看到网上有人说 Visual Studio 的 debugging 功能更好,想试试。

    请教一下 V2EX 的各位,什么 C++ 的 IDE 在 macOS 上推荐:CLion, Xcode, 或者 Visual Studio ?

    谢谢啦~!

    16 条回复    2023-03-26 23:25:56 +08:00
    SMGdcAt4kPPQ
        1
    SMGdcAt4kPPQ  
       2023-03-26 12:11:37 +08:00 via Android
    VS for Mac 不支持 C++
    aliceclark
        2
    aliceclark  
       2023-03-26 12:24:53 +08:00
    visual studio for mac 是用来写.net
    xcode 没用来写过 C++,写 swift 的时候他直接从 github 下 package 很好用,不知道对 C++管不管用
    最后还是推荐 CLion ,ssh 到旁边的 linux 机器或者 docker 一个 linux
    还有 eclipse codeblock qtcreator 啥的,看着就不太喜欢
    其实用 vscode 写也行,就是编译时候要直接用命令行
    levelworm
        3
    levelworm  
       2023-03-26 12:29:16 +08:00 via Android
    学习的话推荐 linux vm 加 vscode ,会推动自己学 cmake 之类的工具,但是比单纯的文本编辑器又强大许多。
    c00r1f
        4
    c00r1f  
       2023-03-26 13:19:31 +08:00 via Android
    vscode 配合 docker desktop 试试
    star9029
        5
    star9029  
       2023-03-26 13:22:48 +08:00   ❤️ 1
    编译器 -> clang
    构建系统 -> xmake
    ide -> vscode(editor) + clangd(intellisense) + codelldb(debug)
    Hsinyao
        6
    Hsinyao  
       2023-03-26 13:33:33 +08:00   ❤️ 1
    你只需要一个能够提高效率的编辑器来编写代码,比如 vscode+clangd ,其余编译和 debug 直接用对应的命令行工具完成

    比如编译,可以直接 gcc ,文件多了写 make 或者 cmake

    再比如 debug ,直接 gdb 就好了

    IDE 上的各种按钮最后也不过是调用这些底层的命令行工具实现,所以不如直接学习这些命令行工具的用法
    mauis
        7
    mauis  
       2023-03-26 13:36:46 +08:00 via iPhone
    vscode +1 票。
    daveh
        8
    daveh  
       2023-03-26 13:38:30 +08:00 via iPhone
    CLion 已经是最好用的了,花时间久跟这有关?
    有些技巧可以学学,比如自己感觉哪里慢,有不方便的地方,也许是没掌握技巧的原因。
    phiysng
        9
    phiysng  
       2023-03-26 14:17:00 +08:00
    “我全都要”。

    用 CMake/XMake 这类的工具可以生成各种 IDE 的工程文件,想用哪个生成一下就可以了。


    几年前用 XCode 写 C++感觉很难用,现在不知道咋样; CLion 的调试功能现在对学生应该是很够用了。
    我的习惯是写代码用 CLion,需要附加进程 /调试 Dump 的时候切到 Visual Studio 。
    phiysng
        10
    phiysng  
       2023-03-26 14:18:34 +08:00
    #9 Windows 下的 Visual Studio
    ixcode
        11
    ixcode  
       2023-03-26 15:10:36 +08:00
    这不是 IDE 的问题,这是 C++的问题
    MoRanjiang
        12
    MoRanjiang  
       2023-03-26 15:16:21 +08:00
    同学用 VSCode 比较多
    agagega
        13
    agagega  
       2023-03-26 15:26:31 +08:00   ❤️ 1
    Xcode 只是缺少一些功能(比如用终端不方便),还有恶心强迫症(我就没见过其他 IDE 允许自定义文件顺序的),写标准的 Cpp 项目用 Xcode 没啥问题,还不用操心 CMakeLists 怎么写(不管所谓 modern cmake 拥趸怎么吹,这种命令式语法始终很奇怪,有时候甚至不如 Makefile 直观)。

    CLion 也很好,功能比 Xcode 丰富,对 clang-format 之类工具支持也更好。没有特殊需求,有 CLion 用就别去折腾 vscode 了。
    listenerri
        14
    listenerri  
       2023-03-26 16:09:39 +08:00
    clion 很好了,该有的功能都支持,除了基础 IDE 功能,还有类似 vscode 远程开发调试,对 cmake 的支持最近的版本也足够完善了。
    letianqiu
        15
    letianqiu  
       2023-03-26 17:50:39 +08:00
    CLion 暂时多了 call hierarchy 功能,但是 vscode cpp tools 下一个版本 1.15 也会支持 call hierarchy 。马上正式 release 的 Qt Creator 10 也支持 call hierarchy 了。vscode 可以配置 task ,配置好以后编译也不需要打开终端了,鼠标点 run build task 就可以了。
    ketor
        16
    ketor  
       2023-03-26 23:25:56 +08:00   ❤️ 14
    同时用 vim 、CLion 、vscode 开发 C++用了挺长一段时间,分享一下自己的经验。
    vim:用起来最顺手的,会有一点学习曲线陡峭的问题。vim 相对来说是投入产出比最高的了,一次学习,终生受益。VIM 对各种 C++项目的适应性是最好的,使用 YouCompleteMe 配合 clangd ,无论是 cmake 项目还是 makefile 项目,统统生成 compile_commands.json 之后就可以无缝衔接了。 同时配合上 gtags-cscope 之后,基本的 Find References 也比较丝滑了。 至于 easymotion 、multicursor 都是 vim 上必备的了。可以看看 skywind3000 讲解如何使用 vim 搭建 C++开发环境的,他应该主要是 Windows 环境比较多,在 Mac 上也类似的,但要讲兼容性,还是整个 ubuntu 的 vm 比较容易一些。

    vscode:clangd + microsoft cpp ,这个具体可以看 clangd 官方网站的介绍的 best pracitce( https://clangd.llvm.org/installation),里面对于主流的编辑器如何配置都有详细介绍。 vscode 安装 vim 插件之后,自带了 easymotion 等一些比较好用的 vim 插件,相对来说比 JetBrains 家的 IdeaVim 要更加全面一些,但是实际用起来似乎没有 IdeaVim 那么稳定。vscode 的好处是可定制性非常强,和 vim 一样对于 cmake 和 makefile 项目都能比较好的支持,代码提示、静态代码检查这些基于 clangd 干的事也都能干得好。 通过精心配置之后,vscode 也可以做到几乎完全用键盘操作了。 如果用普通鼠标的话,vscode 的滚动比例需要调整一下,不然在 mac 下鼠标滚动非常神经质,用 trackpad 和 magic mouse 的话是感觉不到这个滚动问题的。
    vscode 的最大优势个人认为是 remote 模式确实做得非常棒,比 Clion 要好很多很多很多。。。。。, 但是 vscode 时不时会有一些小问题,比如撤销编辑这个操作,cmd+z 和 vim 里的 u ,感觉有冲突,总是不小心就撤销错了。

    clion: 它其实也是基于 clangd 来搞的,相对来说更加开箱即用得多,几乎是 0 配置就可用了,代码编辑这个功能本身做的个人认为比 vscode 要流畅丝滑很多,插件的成熟度比 vscode 高一些,但是数量少很多,容易有一些功能就不好实现。但是也有一些比如 multi-highlight 这种好用的插件,vscode 没有对应的。clion 的代码索引做得会比较好用一些,跟 idea 那个体验有一拼了,如果项目是完全用 cmake 管理,没有 extenral_project 的话,那么 clion 的体验是非常棒的。
    clion 的缺点很明显也很要命,首先是 remote development 用起来一言难尽,与 vscode 的 remote 相比简直连 beta 都算不上,即使把服务器上 clion 的内存堆大小开到 12G 以上,也没什么实质的提升,稍微大一点的项目,动不动就索引失效了,然后卡半天建索引,体验真的一言难尽。
    clion 的另一个缺点就是只能对 cmake 管理的项目有比较好的体验,一旦这个项目混合了 cmake 和 makefile ,或者 cmake 里面有 external_project ,那代码索引的能力就非常捉急了。
    忍了很久 clion 的这些问题,最后放弃使用了。 有些 C++项目在 Mac 上比较难搞,所以 remote 是刚需。


    总体来说,vim 有一定的学习曲线,需要投入一些时间,效率提升地反馈没有那么快。但是还是建议一定要学习和使用 vim ,因为即使 vscode 、clion 这些都在安装 vim 插件之后才有更高的效率。 另外配置 vim 插件的过程中,你能够对 c++开发过程中的很多细节有更好的理解,比如 clangd 的代码提示怎么才能生成,clang-tidy 是怎么回事,clang-format 又是怎么回事,分别是怎么配置的,vim 和 git 怎么集成的,git 内部的数据结构大概是什么样的,等等。
    这样在使用 vscode 、clion 的时候,对于很多问题就会有更加透彻的理解,而不是完全只能当成一个黑盒使用。

    最后,现在主力使用的是 vscode ( 70%时间),辅助使用 vim ( 25%时间),很少使用 clion ( 5%时间)。vscode 上同时使用 clangd 、clang-format (为了格式化 proto ,clangd 自身好像没法 format proto 文件)、microsoft cpp 、vim 等等插件,平时主要是用 vscode 的 remote 模式,代码和环境都放服务器上,ubuntu 、centos 、rocky 都有,虚拟机、物理机、Docker Container 都有,总体来说体验是比较好的。
    vim 效率跟 vscode 差不多,由于 vscode 偶尔有些小毛病,vim 甚至可能还要效率更高,但是 vim 的主要问题是 YouCompeteMe 这个插件在一些老的系统上编译起来比较麻烦,每个机器都去配置环境也是个挺浪费时间的事,vscode 就省心很多,自动安装就行了。

    啰啰嗦嗦说了很多,希望对 OP 能有帮助:)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2599 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:50 · PVG 18:50 · LAX 02:50 · JFK 05:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.