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

2022-09-03 13:17:56 +08:00
 primitive
现在 C++项目一般是用 cmake 构建,include, source 文件夹分离,这样的话调试很方便。但我想仅阅读原代码,由于头文件路径问题,vscode 自带的“跳转到函数实现”不能用
4677 次点击
所在节点    程序员
34 条回复
yingxiangyu
2022-09-03 13:20:03 +08:00
换个 IDE
SoulDee
2022-09-03 13:23:45 +08:00
那个,这世界上不是只有 vscode 这一款编辑器的,CLion, VS 都可以看,Qt Creater 虽然调试可能没前两者那么厉害,但是看代码的话我更喜欢( h 和 cpp 在不需要在文件夹分离。会在编辑器文件列表视图自动给你分开,按 F1 还能在 h 和 cpp 跳转)
ch2
2022-09-03 13:47:29 +08:00
你指定一下 includePath 不就行了,vscode 插件全靠自己调教
nightwitch
2022-09-03 13:59:29 +08:00
换个可以正确跳转的 IDE
hsfzxjy
2022-09-03 14:00:21 +08:00
改下 includePath 就好了
justanetizen
2022-09-03 14:31:03 +08:00
看 big project 的源码,推荐 source insight
churchill
2022-09-03 14:43:19 +08:00
能编译就能生成 compile_commands.json
跳转代码啥的有啥问题
Noicdi
2022-09-03 14:43:55 +08:00
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
2022-09-03 15:26:10 +08:00
需要看什么功能, 直接 debug 跑起来,调用你要看的功能,然后单步调试+看代码就可以了,不明白的地方打印变量值看看,如果要要转跳其他分支,手动修改内存变量就可以了,这样能更好的理解代码。 纯看代码感觉没什么用, 跟看小说一样,看完就忘,
missdeer
2022-09-03 15:38:23 +08:00
CMakeLists.txt 里加一句 自动导出 compile_commands.json
set(CMAKE_EXPORT_COMPILECOMMANDS ON)

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

BC 倒是还算好用,但对付代码也没和 KDiff3 之类拉开差距,要经常合并怕还不如。
YuriX
2022-09-03 19:35:52 +08:00
UE 这种规模的话,VS+VAX 就可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/877435

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX