首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >VSCode C/C++ Intellisense问题:未定义标识符(Linux )

VSCode C/C++ Intellisense问题:未定义标识符(Linux )
EN

Stack Overflow用户
提问于 2020-01-29 18:09:22
回答 3查看 3.2K关注 0票数 0
  • OS: Manjaro 18.1.5
  • VS Code (开放源码):1.41.1
  • C/C++扩展: 0.26.3

嗨,

我有一个问题,使用VS代码与C/C++扩展。一些标识符无法被Intellisense所识别,尽管我的includePath在c_cpp_properties.json中似乎很好。

例如,在这里,我试图从time()库中用ctime显示当前时间。VS代码告诉我,time标识符未定义:

代码语言:javascript
复制
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    cout << time(nullptr) << endl; //--> "time" identifier is undefined
}

这是我的c_cpp_properties.json文件:

代码语言:javascript
复制
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include/linux",
                "/usr/include/c++/9.2.0/tr1"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

ctime文件在/usr/include/c++/9.2.0/tr1//usr/include/c++/9.2.0/中都有,但是将includePath更改为后者不会改变任何事情。

我知道有很多类似的问题,但我找不到适合我的解决方案,我不知道它是否是特定于我的linux发行版或其他什么的(见上面的OS/Apps信息)。

谢谢你的帮忙,

FB.

EN

回答 3

Stack Overflow用户

发布于 2020-03-24 09:38:14

请检查您的settings.json文件。您需要在files.associations部件中手动添加库。您可以简单地更新列表,如下所示:

代码语言:javascript
复制
{
"files.associations": {
        "cctype": "cpp",
        "cmath": "cpp",
        "cstddef": "cpp",
        "cstdlib": "cpp",
        "ctime": "cpp",
        "cwchar": "cpp",
        "random": "cpp",
        "ratio": "cpp",
        "iostream": "cpp"
    }
}
票数 0
EN

Stack Overflow用户

发布于 2022-02-28 10:15:33

我只是想声明一个Node* A= nullptr,VSCode也给了我红色。我就是这样修好的:

查看错误"nullptr未定义.“的"nullptr”,然后单击"Quick“,这将引导您进入"Intellisense Configurations”页面。

->转到底部,上面是“高级设置”,然后选择一个更当前的C和C++版本。我正在使用C++17和C17,它们都支持所有的语言特性。

票数 0
EN

Stack Overflow用户

发布于 2022-05-17 16:01:06

我在VisualStudioCodeVersion1.67.1中也遇到了类似的问题,因为我的c_cpp_properties.json将"compilerPath“设置为cl.exe,但是tasks.json将”命令“设置为clang.exe

对我来说,VSCode报告FILE是未定义的,尽管我已经包含了<stdio.h>

我通过从tasks.json中的“命令”复制到tasks.json的路径来解决我的问题,并在c_cpp_properties.json中将其用于"compilerPath“值。

我假设我可以交替地将cl.exe路径复制到tasks.json中。我猜"compilerPath“和”命令“应该是匹配的,或者至少是相互兼容的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59973142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档