ubuntu 下使用 vs 看 c/c++代码 find all references 总是 no results

2018-04-27 17:46:53 +08:00
 paparika
4896 次点击
所在节点    程序员
8 条回复
MeteorCat
2018-04-27 17:56:46 +08:00
linux 下 GUI 用 QtCreator|Clion 开发最好,VScode 常常会找不到一些奇怪的依赖
`https://github.com/Microsoft/vscode/issues/34838`
扩展有问题吗?
paparika
2018-04-27 18:01:38 +08:00
也搜到了,不过好像没人解决。Clion 也装了,不过感觉运行速度没 vs 快,再就是更喜欢 vs 的界面
kualalumpur
2018-04-27 18:28:34 +08:00
我个人也是 Ubuntu 环境,日常开发 C++项目三个 IDE 都有用, VSCode(配 C/C++ 插件), Qt Creator 以及 CLion. 简单说一下.

如果你只是想看 C/C++代码的话, 个人觉得 Qt Creator 在速度上和 find all references/find defination 上都不错.
我个人也用 Clion. 主要是隔一段时间用 Clion 打开看一下项目中有哪些可以优化的地方 (就是那种 Clang 和 cpp checker 都提示我优化的地方). (P.s. 但是 Clion 的运行速度还是不敢恭维)

个人编辑 C++代码的时候主要还是用 VSCode (如果用了一些额外的库, 例如 Qt, Boost 等, 记得配置 c_cpp_properties.json 要不就 no results 了) 和 Qt Creator. 用 VSCode 主要是这个环境很熟悉,多光标 什么的很方便. Qt Creator 主要是 补全和提示都很 OK
paparika
2018-04-27 18:42:50 +08:00
@kualalumpur 这个回答真棒!
paparika
2018-04-27 18:51:05 +08:00
@kualalumpur 额外的库是什么意思,我在看一个基于 openwrt 的工程,这个 json 要配什么信息才能不 no results, 我现在是所有的都是 no results
gnaggnoyil
2018-04-27 19:51:36 +08:00
cquery, ycmd,自己选一个吧.
kualalumpur
2018-04-27 20:06:30 +08:00
@paparika 一般来讲, 你安装了相关的库到系统, VSCode 的 C++插件能在相关路径中找到的. 基于 openwrt 的项目我不是很清楚.

举个例子, 里面依赖了 libcurl. 那你可以先安装 libcurl:

apt-get install libcurl4-openssl-dev

然后 VSCode 默认情况下是能在默认路径下找到这个依赖.
如果找不到的话, VSCode 会弹出是否创建 includePath 的配置提示 (请确保你安装了 VSCode 的 C++插件)
类似这样的:

Configure includePath for better Intellisense results.
`Learn More` `Don't Show Again`

然后你会发现#include 找不到的地方旁边会有个 小灯泡, 点一下就有选项: Edit "includePath" Settings.
点一下, VSCode 就帮你自动创建一个 c_cpp_properties.json 出来了.

然后在里面的 "includePath" 加入你需要的库所在的路径就好了,最好重启一下 VSCode.

找到路径的方法有一个用 pkg-config 看, 例如:

pkg-config libcurl --cflags

再不行我也不知道怎么整了, 个人觉得补全上还是 Qt Creator/Clion 准确和全面一点.
paparika
2018-04-28 09:44:36 +08:00
@gnaggnoyil 我主要想查函数调用关系,跟这俩插件有关系吗?

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

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

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

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

© 2021 V2EX