primitive
V2EX  ›  程序员

C++看开源代码有什么好方法吗?

By primitive at 2022 年 9 月 3 日 · 6854 次点击
现在 C++项目一般是用 cmake 构建,include, source 文件夹分离,这样的话调试很方便。但我想仅阅读原代码,由于头文件路径问题,vscode 自带的“跳转到函数实现”不能用
34 条回复  •  2022-09-05 01:13:20 +08:00
yingxiangyu
   1
yingxiangyu  
   2022 年 9 月 3 日   ❤️ 2
换个 IDE
SoulDee
   2
SoulDee  
   2022 年 9 月 3 日   ❤️ 1
那个,这世界上不是只有 vscode 这一款编辑器的,CLion, VS 都可以看,Qt Creater 虽然调试可能没前两者那么厉害,但是看代码的话我更喜欢( h 和 cpp 在不需要在文件夹分离。会在编辑器文件列表视图自动给你分开,按 F1 还能在 h 和 cpp 跳转)
ch2
   3
ch2  
   2022 年 9 月 3 日   ❤️ 3
你指定一下 includePath 不就行了,vscode 插件全靠自己调教
nightwitch
   4
nightwitch  
   2022 年 9 月 3 日
换个可以正确跳转的 IDE
hsfzxjy
   5
hsfzxjy  
   2022 年 9 月 3 日 via Android
改下 includePath 就好了
justanetizen
   6
justanetizen  
   2022 年 9 月 3 日   ❤️ 1
看 big project 的源码,推荐 source insight
churchill
   7
churchill  
   2022 年 9 月 3 日
能编译就能生成 compile_commands.json
跳转代码啥的有啥问题
Noicdi
   8
Noicdi  
   2022 年 9 月 3 日   ❤️ 1
vscode 的话,插件可以用 clangd ,然后通过 bear 生成项目的 compile_commands.json ,这样 clangd 就挺好识别的,跳转什么的挺好用
在 jyy 老师那边学到的,可以看看这个视频
https://www.bilibili.com/video/BV1DY4y1a7YD?spm_id_from=333.999.0.0&vd_source=85b04fb11ee5c7ac4c5243ba3579803b&t=2987.5
jones2000
   9
jones2000  
   2022 年 9 月 3 日
需要看什么功能, 直接 debug 跑起来,调用你要看的功能,然后单步调试+看代码就可以了,不明白的地方打印变量值看看,如果要要转跳其他分支,手动修改内存变量就可以了,这样能更好的理解代码。 纯看代码感觉没什么用, 跟看小说一样,看完就忘,
missdeer
   10
missdeer  
   2022 年 9 月 3 日   ❤️ 1
CMakeLists.txt 里加一句 自动导出 compile_commands.json
set(CMAKE_EXPORT_COMPILECOMMANDS ON)

再装一个 clangd 插件,索引建完就好用了
mineralsalt
   11
mineralsalt  
   2022 年 9 月 3 日
clion 呗, vscode 也就写前端还行
hello2090
   12
hello2090  
   2022 年 9 月 3 日 via iPhone
看代码就是 source code 啊
hello2090
   13
hello2090  
   2022 年 9 月 3 日 via iPhone   ❤️ 1
@hello2090 说错了 source insight ,我在国内工作过的两家公司,sourceinsight 和 beyond compare 都是标配。难道现在不是 C++就不流行他们了?
user0
   14
user0  
   2022 年 9 月 3 日 via Android
小型项目用 ide ,中型用 source insight ,大型用 opengrok
fatigue
   15
fatigue  
   2022 年 9 月 3 日   ❤️ 1
图形界面就 source insight ,终端就 vim+cscope+ctags
hankai17
   16
hankai17  
   2022 年 9 月 3 日
c++的话 还是能配合一起调试 阅读起来更方便
bzEq
   17
bzEq  
   2022 年 9 月 3 日
vscode 装个 clangd 就行了。然后在你的项目根目录做个软链接到你编译目录的`compile_commands.json`。
hysjw
   18
hysjw  
   2022 年 9 月 3 日 via iPhone
我记得现在的插件 compile_commands.json 都是默认启用的 有这个就能自动识别
FrankHB
   19
FrankHB  
   2022 年 9 月 3 日
@justanetizen @hello2090 Source Insight ?得了吧,那玩意儿现在怕是还不如开个 VS 手动 Ctrl+Shift+F 靠谱呢。
而且默认那个故意放大标识符制造语法噪音,反而导致破坏等宽字体的阅读效率,基本就是平时不会习惯同时编辑和阅读的代码的初级用户才会吹的。

BC 倒是还算好用,但对付代码也没和 KDiff3 之类拉开差距,要经常合并怕还不如。
YuriX
   20
YuriX  
   2022 年 9 月 3 日
UE 这种规模的话,VS+VAX 就可以
wzcloud
   21
wzcloud  
   2022 年 9 月 3 日
用 Clion
ptyfork
   22
ptyfork  
   2022 年 9 月 3 日
Vscode + clangd + remote 简直完美
littlewing
   23
littlewing  
   2022 年 9 月 3 日
CLion
cpper
   24
cpper  
   2022 年 9 月 4 日
@YuriX rider 不香嘛
conanforever22
   25
conanforever22  
   2022 年 9 月 4 日
bear/cmake 生成 compile_commands.json 然后用 ccls 等 lsp server
https://github.com/rizsotto/Bear
https://github.com/MaskRay/ccls/wiki/Editor-Configuration
PowerDi
   26
PowerDi  
   2022 年 9 月 4 日
@SoulDee 如果是 CLion 的话,不需要 cmake 就可以跳转代码吗?
PowerDi
   27
PowerDi  
   2022 年 9 月 4 日
@Noicdi 看了视频 觉得我以前看的视频跟你们关注的真的差好远 竟然有那么实用的
PowerDi
   28
PowerDi  
   2022 年 9 月 4 日
@ptyfork 一直没有理解官方的 c++插件有几个功能是跟代码跳转和提示有关的。大家都在建议 clangd ,这个能更具体的请教一下区别在哪里吗
52coder
   29
52coder  
   2022 年 9 月 4 日
@justanetizen windows 下的神器,换了 mac 没有 source insight 呀,而且这个软件好久没更新了吧,都是盗版,我同事花 5000 买了个正版😁
UFc8704I4Bv63gy2
   30
UFc8704I4Bv63gy2  
   2022 年 9 月 4 日 via Android
@52coder 不是 239 美金嗎?
seanzxx
   31
seanzxx  
   2022 年 9 月 4 日
好像没人提 Understand 呀,多语言支持,多平台支持
https://www.scitools.com
52coder
   32
52coder  
   2022 年 9 月 4 日
@weiqk 4000 刀的都有,不同版本的,我猜你说的这个 239 应该只能用一个版本
liuguangxuan
   33
liuguangxuan  
   2022 年 9 月 4 日
@seanzxx #31 Understand 用不起,太贵了 😂
seanzxx
   34
seanzxx  
   2022 年 9 月 5 日 via iPhone
@52coder 价格贵的不是不同版本,是打包购买,239 是一个 license ,4180 是 20 个 license ,套装等于批发价会便宜点,你同事买的是多个的套装?
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 83ms · 3.9.8.5