一些关于 C++编译,或者说是它们的文本编辑器的小问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
marcosteam
V2EX    问与答

一些关于 C++编译,或者说是它们的文本编辑器的小问题

  •  
  •   marcosteam 2018-05-23 00:57:43 +08:00 2647 次点击
    这是一个创建于 2697 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前我也提到过,我自学的时间不长,高中只是断断续续自学了一点 Python,现在大学里面要求学 C++,然后写程序的时候就有一些问题了。

    1.之前我也提到了用 NVim(Vim)+deoplete(YCM)来构建 IDE 的事情,其中对于 C++的补全,他们都要求有一个 compile_commands.json 的文件,这个要如何生成?看文档虽然明白它是要存放编译的信息,但是我还是不知道为什么要用到它?而且,为什么每一个存放 cpp 文件的文件夹都要有一个这个文件?就不能一次生成吗?

    2.后来用回了我的老相好 VSCode,但是为什么 Windows 版编译调试要用修改 lauch.json,还有 c_cpp_properties.json 等等这些文件呢?代码补全也是,它也不像 Python,装好以后马上就可以补全,对于 C++还得修改 c_cpp_properties.json,否则是绝对没有补全的。现在我们的课程所编写的程序还是以单个.cpp 文件的小程序为主,VSCode 也不能像 Code::blocks 一样可以直接开始编译,还得我们手动选择路径进行编译调试,是不是就显得有点不那么智能了呢?
    10 条回复    2018-05-29 13:49:32 +08:00
    quinoa42
        1
    quinoa42  
       2018-05-23 03:01:43 +08:00
    https://github.com/cquery-project/cquery/wiki#compile_commandsjson

    我的解决方案很简单粗暴
    brew install bear
    brew install gmake
    make clean && bear gmake
    quinoa42
        2
    quinoa42  
       2018-05-23 03:04:03 +08:00
    @quinoa42 修正,应该是 brew install make,不过 brew 的 make 是用 gmake 以此与 mac 自带的进行区分
    这么做的区别是自带的 make 因为安全的原因无法被 bear 读取
    inflationaaron
        3
    inflationaaron  
       2018-05-23 03:18:14 +08:00 via iPhone
    没必要,用 cquery 的话直接在.cquery 里面写编译 flags 就行了
    lsmgeb89
        4
    lsmgeb89  
       2018-05-23 05:55:43 +08:00
    直接 CLion 简单一点,一上来不要搞的太复杂。
    lsmgeb89
        5
    lsmgeb89  
       2018-05-23 05:56:05 +08:00
    Windows 的话就 VS 好了……
    ech0x
        6
    ech0x  
       2018-05-23 07:01:03 +08:00 via iPhone
    简单的项目用.ycm_extra_conf.py 改改编译参数就好了,复杂的项目构建工具可以自动生成 ompile_commands.json 的,用 cmake 的话,CMAKE_EXPORT_COMPILE_COMMANDS 可以自动生成 compile_commands.json
    lance6716
        7
    lance6716  
       2018-05-23 09:43:06 +08:00 via Android
    新手别学资深程序员不用 IDE 好吧…
    KeepPro
        8
    KeepPro  
       2018-05-23 09:43:32 +08:00 via Android
    因为编译工具需要当前项目的一些信息。
    John60676
        9
    John60676  
       2018-05-23 11:16:46 +08:00
    CLion 吧,初学别折腾那么多。
    MaskRay
        10
    MaskRay  
       2018-05-29 13:49:32 +08:00
    @inflationaaron 也可以来用我的 https://github.com/MaskRay/ccls $ccls/memberHierarchy textDocument/definition workspace/symbol 一些细节有改进,cacheFormat 默认 binary 比 msgpack 更小,pipeline 简化但更不容易被保存弄坏
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2733 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 14:55 PVG 22:55 LAX 07:55 JFK 10:55
    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