9102 年了, mac 下有没有能替代 source insight 的 c/c++源代码阅读软件 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
52coder
V2EX    程序员

9102 年了, mac 下有没有能替代 source insight 的 c/c++源代码阅读软件

  •  
  •   52coder 2019-04-02 19:49:42 +08:00 30295 次点击
    这是一个创建于 2385 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 V2EX 搜了好多帖子,看到大家从 win 切换到 mac 时少了 source insight 所带来的不习惯。 由于 V2EX 里的帖子有一些比较久了,现在 mac 平台阅读 c/c++代码使用什么 ide.只是阅读,由于代码量大,本地编译不现实。 最好是 mac win 跨平台的.

    101 条回复    2020-12-10 16:03:44 +08:00
    1  2  
    x1596357
        1
    x1596357  
       2019-04-02 19:58:19 +08:00 via iPhone
    qtcreator, 平时看 wine 代码 4 百万行都不怎么卡
    imkerberos
        2
    imkerberos  
       2019-04-02 20:00:36 +08:00
    没有.
    hilbertz
        3
    hilbertz  
       2019-04-02 20:02:39 +08:00
    vs, vsc
    52coder
        4
    52coder  
    OP
       2019-04-02 20:06:22 +08:00
    @x1596357 我怎么感觉这货好卡呀
    52coder
        5
    52coder  
    OP
       2019-04-02 20:07:29 +08:00
    @hilbertz vscode 是不是要配置,查看引用是不是要装 gtags 等?
    waruqi
        6
    waruqi  
       2019-04-02 20:08:40 +08:00 via Android   1
    understand
    52coder
        7
    52coder  
    OP
       2019-04-02 20:11:15 +08:00
    @waruqi 是否有 1.跳转到实现 2.选中变量 宏 函数 查看所有引用 等基本功能?
    hilbertz
        8
    hilbertz  
       2019-04-02 20:26:57 +08:00
    @52coder vscode 装 c/c++插件就可以了
    52coder
        9
    52coder  
    OP
       2019-04-02 20:30:06 +08:00
    @hilbertz 在你发帖前我装了几个插件,还是不能查看这个函数或者变量被跨文件夹下的哪个文件里调用
    superzou
        10
    superzou  
       2019-04-02 20:36:26 +08:00 via Android
    understand
    52coder
        11
    52coder  
    OP
       2019-04-02 20:52:24 +08:00
    @superzou understand 再加一票,我晚上回去试试。
    52coder
        12
    52coder  
    OP
       2019-04-02 20:53:37 +08:00
    @hilbertz 装了 c/c++插件,实现不了查看引用功能,搜索了下还要装 gtags,现在在 windows 上试验,mac 上晚上下班回去试验。
    fengjianxinghun
        13
    fengjianxinghun  
       2019-04-02 20:56:48 +08:00 via iPhone
    understand
    ggicci
        14
    ggicci  
       2019-04-02 20:57:48 +08:00
    sourcegraph,还能自己搭私服
    fengjianxinghun
        15
    fengjianxinghun  
       2019-04-02 20:58:16 +08:00 via iPhone   1
    mac/linux 调试我用 idapro 源码调试
    看代码 understand
    写代码 emacs
    kristpan
        16
    kristpan  
       2019-04-02 21:16:34 +08:00 via Android
    你们的 understand 用的盗版的吗?
    52coder
        17
    52coder  
    OP
       2019-04-02 21:46:57 +08:00
    @kristpan 如果要用 understand 的话,我可能要用为数不多的盗版了。略贵呀
    52coder
        18
    52coder  
    OP
       2019-04-02 21:47:42 +08:00
    @ggicci 自己搭代码服务器,然后网页用 sourcegrah 插件?少年你骨骼清奇呀。哈哈哈
    sadhen
        19
    sadhen  
       2019-04-02 21:48:09 +08:00
    如果在参与开源项目的话,可以向 Intellij 申请 CLion 的 License
    waruqi
        20
    waruqi  
       2019-04-02 22:22:20 +08:00 via Android
    @52coder source insight 有的 基本都有,而且是跨平台的
    sinxccc
        21
    sinxccc  
       2019-04-02 22:25:36 +08:00
    我选择 wine Source Insight..
    zjsxwc
        22
    zjsxwc  
       2019-04-02 22:26:48 +08:00 via Android
    jb 家的不好用吗?
    yuting0501
        23
    yuting0501  
       2019-04-02 23:19:16 +08:00 via iPhone   2
    我觉得 VSCode 可以结束这个话题,配置好 intellisense,source insight 这种上古软件可以安心退休
    hackpro
        24
    hackpro  
       2019-04-02 23:22:38 +08:00
    understand
    wzhy
        25
    wzhy  
       2019-04-02 23:40:25 +08:00 via Android
    @x1596357 qtcreator 打开一个项目中的源代码文件( cpp),这个文件中有很多黄色的 warning (语法之类的),然后就相当卡,特别是改正了其中几个 warning 的瞬间,卡到爆……有没有办法解决?
    minami
        26
    minami  
       2019-04-02 23:56:01 +08:00
    @wzhy #25 是不是打开了 CppCheck 这个插件?
    ggicci
        27
    ggicci  
       2019-04-02 23:59:44 +08:00
    @52coder 不用装插件啊,私服就本地 docker pull 啊,没有你想象中的那么坏
    lovedebug
        28
    lovedebug      2019-04-03 00:05:19 +08:00 via Android
    opengrok ?万能
    52coder
        29
    52coder  
    OP
       2019-04-03 00:16:32 +08:00
    @waruqi 中文注释乱码如何破,设置里面打开方式为 utf-8
    52coder
        30
    52coder  
    OP
       2019-04-03 00:16:53 +08:00
    @hackpro 中文注释乱码如何破,设置里面打开方式为 utf-8
    chiu
        31
    chiu  
       2019-04-03 00:40:01 +08:00 via Android
    公司有配 SlickEdit 的 license,但我自己用不习惯,Mac 目前用 VSC,配合一些插件用还可以。
    UFc8704I4Bv63gy2
        32
    UFc8704I4Bv63gy2  
       2019-04-03 00:44:46 +08:00 via Android
    codeblocks 了解下,我觉得是最好的代码阅读工具
    52coder
        33
    52coder  
    OP
       2019-04-03 00:51:50 +08:00
    @yuting0501 决定折腾 vscode 了,有没有具体配置相关的教程?
    leighton
        34
    leighton  
       2019-04-03 00:54:14 +08:00 via iPhone
    我不信 qtcreator 还能比 vscode 卡
    ourleven
        35
    ourleven  
       2019-04-03 01:27:16 +08:00 via iPhone
    竟然没人提 sublime
    52coder
        36
    52coder  
    OP
       2019-04-03 08:15:32 +08:00
    @ourleven sublime 需要安装什么插件?需要记住很多快捷键吧?单独装上去连跳转都没有
    livepps
        37
    livepps  
       2019-04-03 08:26:01 +08:00 via Android
    cmake 工程,clion 非常好用,如果不是,跳转可能有时候不准确。
    BBCCBB
        38
    BBCCBB  
       2019-04-03 08:37:53 +08:00
    clion 或者 eclipse 试试
    52coder
        39
    52coder  
    OP
       2019-04-03 09:35:08 +08:00
    @livepps 不是 cmake 工程,都是 makefile,clion 找师弟申请了免费版
    52coder
        40
    52coder  
    OP
       2019-04-03 09:36:18 +08:00
    @BBCCBB clion 基于 cmake,我现有的工程都是 makefile,楼上也有朋友说不是 cmake 工程跳转不准确,我昨天试验确实是这样。
    x1596357
        41
    x1596357  
       2019-04-03 09:39:09 +08:00 via iPhone
    @wzhy 关闭 line annotation 试试,如果项目真的很大你要看完成索引没有,在右下角有个进度,没完成索引前 CPU 占用率是很高的
    ww2000e
        42
    ww2000e  
       2019-04-03 09:40:58 +08:00
    vim+ycm...
    somebody
        43
    somebody  
       2019-04-03 09:43:33 +08:00 via Android
    CLion,自己导入一下,生成 cmake 文件,再适当修改。
    看 40 万行代码的 Android art 代码全靠它
    x1596357
        44
    x1596357  
       2019-04-03 09:44:08 +08:00 via iPhone
    再不行的话,你可能需要关闭 clang 索引插件,大项目会吃几个 G 内存,你可能内存不足了。
    juzipeek
        45
    juzipeek  
       2019-04-03 09:45:44 +08:00
    可以尝试下 understand (收费),kdevelop (免费)
    tcfenix
        46
    tcfenix  
       2019-04-03 09:47:02 +08:00
    跨平台的话真心推荐 clion,保证 win mac 等各种平台统一的体验,甚至于其他语言,比如 Golang,JAVA,PYTHON 都能保证统一的手感.
    clion 的跳转应该是基于 cmake 的,之前使用个 makefile 的时候就是我又自己手动维护一个 cmakelist 来保证跳转.
    eliteYang
        47
    eliteYang  
       2019-04-03 09:47:21 +08:00
    clionvscode vs for mac
    52coder
        48
    52coder  
    OP
       2019-04-03 09:51:52 +08:00
    @juzipeek understand 使用的时候中文注释乱码,不知道你知不知道如何配置?
    cstj0505
        49
    cstj0505  
       2019-04-03 09:56:18 +08:00
    vim+ycm +1
    GoodRainChen
        50
    GoodRainChen  
       2019-04-03 10:02:45 +08:00
    居然没有提 xcode 的?
    52coder
        51
    52coder  
    OP
       2019-04-03 10:11:46 +08:00
    @cstj0505 这个对于平时使用 ide 习惯的人来说,使用习惯难以切换。
    52coder
        52
    52coder  
    OP
       2019-04-03 10:14:04 +08:00
    @cstj0505 vim+ycm 跳转和自动补全可以实现之后,查看函数调用之类的呢?颜值党表示,vim 看起来有点古老了。
    52coder
        53
    52coder  
    OP
       2019-04-03 10:14:59 +08:00
    @GoodRainChen xcode 是不是太重了?
    CodingDoge
        54
    CodingDoge  
       2019-04-03 10:17:13 +08:00
    @waruqi 碰巧看到我司大佬
    52coder
        55
    52coder  
    OP
       2019-04-03 11:17:53 +08:00
    @CodingDoge 你司大佬的 understand 怎么解决中文注释乱码问题的 @waruqi
    boywhp
        56
    boywhp  
       2019-04-03 11:24:13 +08:00
    vim
    yuting0501
        57
    yuting0501  
       2019-04-03 11:27:46 +08:00 via iPhone
    @52coder VSCode 官方教程就可以了,Qt 我也用,流畅度没有其他人说的会比 VSCode 好
    0871087123
        58
    0871087123  
       2019-04-03 11:42:39 +08:00
    understand
    vim+YCM
    clion
    sublime
    atom
    nodepad++
    sourceinsight
    看啥情况咯,这些我都用
    0871087123
        59
    0871087123  
       2019-04-03 11:42:54 +08:00
    对了还有 visual studio
    0871087123
        60
    0871087123  
       2019-04-03 11:43:30 +08:00
    是了,mac 上面,那 visual studio 可以改成 vscode ………………
    tomychen
        61
    tomychen  
       2019-04-03 11:44:48 +08:00
    如果说 vim 会不会挨喷...
    vim + ctags
    LANB0
        62
    LANB0  
       2019-04-03 12:04:26 +08:00
    即使过了这么多年,依然没有可以替代 sourceinsight 的,win 下也是。函数列表(支持搜索),跳转到定义、跳转到调用处、引用全项目搜索。vscode+c/c++插件没有引用搜索、每次打开项目都很卡顿。clion 直接很多函数变量识别不到。understand 是最接近 si 的,三年前尝试了几天,还是换回了 wine+si,功能使用步骤太繁琐
    karllynn
        63
    karllynn  
       2019-04-03 12:41:54 +08:00
    随便用啥看,vscode,vim 都行,虚拟机用 vs 看也有过

    我讨厌 C++
    wzhy
        64
    wzhy  
       2019-04-03 12:51:02 +08:00 via Android
    @minami 谢谢提醒,但是我应该没用这个插件,因为找半天没找到…
    wzhy
        65
    wzhy  
       2019-04-03 12:54:53 +08:00 via Android
    @x1596357 您说的没错,索引完不会卡,但是只要修改其中的一两行代码,它会重新索引,那一下特别占 CPU。
    c9106
        66
    c9106  
       2019-04-03 13:03:37 +08:00
    slickedit 完美代替 source insight
    yuankui
        67
    yuankui  
       2019-04-03 13:56:10 +08:00
    lsmgeb89
        68
    lsmgeb89  
       2019-04-03 14:15:17 +08:00
    VSCode 装微软官方的 C++ 插件,根据官方文档简单配下,只要不是大型项目(百万行级别的),性能都可以。

    其实只要是 language server 实现的都可以用。

    Source Insight 可以直接删掉了
    fengjianxinghun
        69
    fengjianxinghun  
       2019-04-03 14:18:02 +08:00
    @lsmgeb89 完全不行,不信试一下 linux 源码
    lixianhuei
        70
    lixianhuei  
       2019-04-03 14:32:25 +08:00   1
    很多人不知道一个神奇:IDA。我用来做逆向工程的,交叉引用,注释,图例,插件,什么都可以做,完美。。

    用来读各种源码也爽翻天的。。
    thinkloki
        71
    thinkloki  
       2019-04-03 14:32:28 +08:00
    插眼求一个看 android 源码的工具。
    livepps
        72
    livepps  
       2019-04-03 14:34:22 +08:00 via Android
    @52coder 如果工程结构不复杂,自己写下 cmake 文件,复杂的 makefile 写成 cmake 那就头疼了
    lsmgeb89
        73
    lsmgeb89  
       2019-04-03 14:38:49 +08:00   1
    Google 搞的 cland 应该是大杀器,不过还需要时间。

    &t=2688s

    视频里提到了 cquery 是现有比较成熟的方案。
    lsmgeb89
        74
    lsmgeb89  
       2019-04-03 14:52:51 +08:00
    @fengjianxinghun 公司里 170 万行的 C++14 的项目,主要是借助 cmake 生成的 compile_commands.json 配置 C++ 插件,VSCode 精确性和性能都还可以接受。
    jfcherng
        75
    jfcherng  
       2019-04-03 14:53:05 +08:00
    Sublime Text 的就是 LSP 的支持。

    clangd / cquery 的都是生成 compile_commands.json。
    cmake 的工程本身就有 flag 能生成 compile_commands.json
    makefile 的工程可以用 compiledb 生成 compile_commands.json

    Sublime Text + Clangd 踩坑: https://git.io/fjIrK
    lsmgeb89
        76
    lsmgeb89  
       2019-04-03 14:57:30 +08:00   2
    这里有一份 language server 的实现情况

    https://langserver.org/
    Deville
        77
    Deville  
       2019-04-03 14:57:55 +08:00
    昨儿 vs2019 不是发布了 Mac 版吗
    piapia
        78
    piapia  
       2019-04-03 15:07:32 +08:00 via iPhone
    @Deville 貌似不支持 c/c++
    qgymib
        79
    qgymib  
       2019-04-03 15:11:02 +08:00
    凡是用于阅读 C/C++代码的无脑推荐 eclipse cdt,凡是用于书写 C/C++代码的无脑推荐 visual studio
    waruqi
        80
    waruqi  
       2019-04-03 15:38:50 +08:00 via Android
    @CodingDoge
    @52coder 没遇到过,不怎么看带中文注释的代码,你可以这个脚本用 iconv 批量吧源文件转成 utf8 后再看试试
    fengjianxinghun
        81
    fengjianxinghun  
       2019-04-03 15:47:33 +08:00
    @Deville mac 版的 vs 那个就是收购的 monodevelop,只能搞 C#
    Deville
        82
    Deville  
       2019-04-03 15:52:36 +08:00
    @piapia
    @fengjianxinghun
    搜嘎。。。
    piapia
        83
    piapia  
       2019-04-03 16:05:27 +08:00
    @thinkloki #71 搭车同求... 另外请问你试过 vscode 么?
    thinkloki
        84
    thinkloki  
       2019-04-03 16:09:21 +08:00
    @piapia 没试过我都是用 Subline 的,很不方便。
    fengjianxinghun
        85
    fengjianxinghun  
       2019-04-03 16:10:30 +08:00
    @waruqi Project->Configure Project->File Options-> Encoding
    miscmz
        86
    miscmz  
       2019-04-03 16:17:37 +08:00 via Android
    vim,vscode
    JasperHale
        87
    JasperHale  
       2019-04-03 16:39:21 +08:00
    看代码+部分编辑 vscode+clang 跳转,结构体补全 /查看引用 等都可以胜任. Subline / atom 同理.
    clang 的补全和提示比 gtags 要好. vscode+gtags 效果不佳,当然也可能是配置的方式不对...
    clion 基本完美,但是收费..比较吃内存吧,新版本应该好一些,N 久没用了.
    JasperHale
        88
    JasperHale  
       2019-04-03 16:41:34 +08:00
    忘了 ps : 以上实践基于 c 而非 c++. vscode 的 c/c++插件,结构体补全不太好
    HangoX
        89
    HangoX  
       2019-04-03 19:11:55 +08:00
    说 jetbrains 的,是没看过大项目吧。。。Android 源码要弄到比较小的范围才能索引,不然就挂
    allenforrest
        90
    allenforrest  
       2019-04-03 19:14:23 +08:00
    我靠,居然不用 Xcode 吗?重归重,但也要看你工程本身的规模啊。
    52coder
        91
    52coder  
    OP
       2019-04-03 20:36:32 +08:00
    @JasperHale 我使用了 vscode + gtags,索引起来比较费劲,比如有些全局变量我想看哪修改的,shift+f12 有时候不灵,只能搜索。
    52coder
        92
    52coder  
    OP
       2019-04-03 20:37:25 +08:00
    @Deville 没看到有支持 c++,而且前面评价比较差
    52coder
        93
    52coder  
    OP
       2019-04-03 20:39:25 +08:00
    @allenforrest 阅读代码都是万行以内的小模块,15 最低配 pro,开 xcode 再开别的,内存扛不住
    freedomshi
        94
    freedomshi  
       2019-04-04 11:11:21 +08:00
    eclipse 了解一下。。。
    52coder
        95
    52coder  
    OP
       2019-04-04 14:28:32 +08:00
    @freedomshi eclipse 放假了解下,目前在用 understand 和 vscode,understand 静态分析功能真心强大。
    wenweihu86
        96
    wenweihu86  
       2019-05-06 17:45:01 +08:00
    试过了 vscode、slickedit,都没法替代 source insight。slickedit 最接近,但查看函数引用功能没有; vscode 就更差了,跳转到实现都没做好。
    52coder
        97
    52coder  
    OP
       2019-05-06 21:54:44 +08:00
    @wenweihu86 跳转有时候都得卡一下,哈哈哈,全局变量看哪些地方调用,有的可以看,有的不可以看,但是界面漂亮,好看不好用,你有好的推荐没
    Kellerman
        98
    Kellerman  
       2019-10-24 16:51:17 +08:00
    @fengjianxinghun 可以吧,我就在看。
    piapia
        99
    piapia  
       2019-11-26 02:15:58 +08:00
    @lixianhuei #70 这个是啥神奇操作?请教下怎么导入源码呢?
    liyafe1997
        100
    liyafe1997  
       2020-10-19 15:52:13 +08:00
    source insight 我最需要的功能就是看函数调用关系( Relation ),至今没找到哪个其它的工具能实现这个功能 。
    1  2  
        帮助文档     自助推广系统     博客     API     FAQ     Solana     2733 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 14:42 PVG 22:42 LAX 07:42 JFK 10:42
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86