V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
paparika
V2EX  ›  程序员

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

  •  
  •   paparika · 2018-04-27 17:46:53 +08:00 · 4893 次点击
    这是一个创建于 2436 天前的主题,其中的信息可能已经有所发展或是发生改变。
    8 条回复    2018-04-28 09:44:36 +08:00
    MeteorCat
        1
    MeteorCat  
       2018-04-27 17:56:46 +08:00
    linux 下 GUI 用 QtCreator|Clion 开发最好,VScode 常常会找不到一些奇怪的依赖
    `https://github.com/Microsoft/vscode/issues/34838`
    扩展有问题吗?
    paparika
        2
    paparika  
    OP
       2018-04-27 18:01:38 +08:00
    也搜到了,不过好像没人解决。Clion 也装了,不过感觉运行速度没 vs 快,再就是更喜欢 vs 的界面
    kualalumpur
        3
    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
        4
    paparika  
    OP
       2018-04-27 18:42:50 +08:00
    @kualalumpur 这个回答真棒!
    paparika
        5
    paparika  
    OP
       2018-04-27 18:51:05 +08:00
    @kualalumpur 额外的库是什么意思,我在看一个基于 openwrt 的工程,这个 json 要配什么信息才能不 no results, 我现在是所有的都是 no results
    gnaggnoyil
        6
    gnaggnoyil  
       2018-04-27 19:51:36 +08:00
    cquery, ycmd,自己选一个吧.
    kualalumpur
        7
    kualalumpur  
       2018-04-27 20:06:30 +08:00   ❤️ 1
    @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
        8
    paparika  
    OP
       2018-04-28 09:44:36 +08:00
    @gnaggnoyil 我主要想查函数调用关系,跟这俩插件有关系吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2817 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 03:30 · PVG 11:30 · LAX 19:30 · JFK 22:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.