【问题标题】:vscode Intellisense not workingvscode Intellisense 不工作
【发布时间】:2015-07-19 00:45:54
【问题描述】:

我刚刚下载了适用于 linux ubuntu 14.04 的 Visual Studio 代码。我创建了一个简单的 test.cpp 并在 vscode 中编写了它,但智能感知不起作用。

这是test.cpp里面的代码:

struct test{
    int a = 5;
}

int main(){
    test t;
    t.
}

当我写“t”时,没有智能感知告诉我 t 的成员。应该有的。

我使用命令“touch test.cpp”在 linux 终端中创建了 test.cpp 文件,然后我使用 Visual Studio 代码打开了 test.cpp 并编写了代码。可以在这里看到截图:http://i.stack.imgur.com/fLhSA.png

有人知道如何让智能感知在 linux 中为 vscode 工作吗?

【问题讨论】:

    标签: c++ linux visual-studio-code


    【解决方案1】:

    按照其他人的建议,您现在可以添加 C/C++ extension

    您可能会遇到以下两个扩展问题:

    扩展程序未检测到自定义库:

    您必须添加自定义库的包含路径。执行以下操作:

    Ctr + Shift + P

    C/C++ 扩展:配置

    包含路径(例如,每行添加一个路径)

    ${workspaceFolder}/**
    /home/me/Documents/my_custom_lib/
    

    扩展突然停止,不再给你任何建议:

    如果您不打开项目根目录,而是打开它的子​​项目,则可能会发生这种情况。打开项目根文件夹并重新加载窗口。

    【讨论】:

    • 当您有一个未保存的新文件时,即使您将语言模式标记为 C++,该扩展也不起作用。
    • 我使用 WSL,但我的智能感知无法正常工作。因此,由于您的键盘快捷键,我转到C/C++ Extension: Configuration,我将默认编译器更改为使用 WSL 编译器,并在高级参数中添加 /usr/include 路径,它可以工作!
    • 什么定义了我的项目根目录?可以配置吗?
    【解决方案2】:

    如果使用 ROS1,以下主要适用于 vscode 使用 C/C++ extension

    在文件.vscode/c_cpp_properties.json(由VSCode ROS extension生成)中,尝试将"cppStandard": "gnu++14"更改为"cppStandard": "c++14"

    文件看起来像这样:

    {
        "configurations": [
            {
                "browse": {
                    "databaseFilename": "",
                    "limitSymbolsToIncludedHeaders": true
                },
                "includePath": [
                    "/home/user/catkin_ws/devel/include/**",
                    "/opt/ros/melodic/include/**",
                    ...,
                    "/usr/include/**"
                ],
                "name": "ROS",
                "intelliSenseMode": "gcc-x64",
                "compilerPath": "/usr/bin/gcc",
                "cStandard": "c11",
                "cppStandard": "c++14"
            }
        ],
        "version": 4
    }
    

    ROS 正在使用c++14 standard,因此指定gnu++14 似乎会破坏事情。这是从this question推导出来的。

    issue 与此有关。

    【讨论】:

      【解决方案3】:

      没有内部智能感知,但有一个 C/C++ 插件。 最近它停止为我工作。 我卸载了又重新安装了 goto 定义现在可以工作了。

      【讨论】:

        【解决方案4】:

        在撰写本文时,the languages supported 表示 C++ 没有 IntelliSense。

        【讨论】:

        • 现在支持使用扩展。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-09
        • 1970-01-01
        • 2019-03-23
        • 1970-01-01
        • 2017-09-12
        • 2016-08-07
        相关资源
        最近更新 更多