嗨,
我有一个问题,使用VS代码与C/C++扩展。一些标识符无法被Intellisense所识别,尽管我的includePath在c_cpp_properties.json中似乎很好。
例如,在这里,我试图从time()库中用ctime显示当前时间。VS代码告诉我,time标识符未定义:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
cout << time(nullptr) << endl; //--> "time" identifier is undefined
}这是我的c_cpp_properties.json文件:
{
"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.
发布于 2020-03-24 09:38:14
请检查您的settings.json文件。您需要在files.associations部件中手动添加库。您可以简单地更新列表,如下所示:
{
"files.associations": {
"cctype": "cpp",
"cmath": "cpp",
"cstddef": "cpp",
"cstdlib": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"random": "cpp",
"ratio": "cpp",
"iostream": "cpp"
}
}发布于 2022-02-28 10:15:33
我只是想声明一个Node* A= nullptr,VSCode也给了我红色。我就是这样修好的:
查看错误"nullptr未定义.“的"nullptr”,然后单击"Quick“,这将引导您进入"Intellisense Configurations”页面。
->转到底部,上面是“高级设置”,然后选择一个更当前的C和C++版本。我正在使用C++17和C17,它们都支持所有的语言特性。
发布于 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“和”命令“应该是匹配的,或者至少是相互兼容的。
https://stackoverflow.com/questions/59973142
复制相似问题