VSCode C/C++;智能感知问题:未定义的标识符(Linux、Manjaro) OS:Manjaro 18.1.5 VS代码(OSS):1.41.1 C/C++扩展:0.26.3
嗨 我在使用带有C/C++扩展的VS代码时遇到问题。Intellisense无法识别某些标识符,尽管我在VSCode C/C++;智能感知问题:未定义的标识符(Linux、Manjaro) OS:Manjaro 18.1.5 VS代码(OSS):1.41.1 C/C++扩展:0.26.3,c++,visual-studio-code,include-path,manjaro,C++,Visual Studio Code,Include Path,Manjaro,嗨 我在使用带有C/C++扩展的VS代码时遇到问题。Intellisense无法识别某些标识符,尽管我在c\u cpp\u properties.json中的includePath看起来不错 例如,在这里,我试图使用ctime库中的time()显示当前时间。VS Code告诉我时间标识符未定义: #include <iostream> #include <ctime> using namespace std; int main() { cout <<
c\u cpp\u properties.json
中的includePath看起来不错
例如,在这里,我试图使用ctime
库中的time()
显示当前时间。VS Code告诉我时间标识符未定义:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
cout << time(nullptr) << endl; //--> "time" identifier is undefined
}
在/usr/include/c++/9.2.0/tr1/
和/usr/include/c++/9.2.0/
上都有一个ctime
文件,但将includePath更改为后者不会改变任何事情
我知道很多人都有类似的问题,但我找不到一个适合我的解决方案,我不知道它是针对我的linux发行版还是其他版本(见上面的操作系统/应用程序信息)
谢谢你的帮助
FB.请检查您的settings.json文件。您需要在files.associations部分中手动添加库。您只需更新列表,如底部所示:
{
"files.associations": {
"cctype": "cpp",
"cmath": "cpp",
"cstddef": "cpp",
"cstdlib": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"random": "cpp",
"ratio": "cpp",
"iostream": "cpp"
}
}
Intellisense不是编译器。它不能完全解析您的代码。它有时会出错,只有你真正的编译器会在你真正编译代码时提供明确的错误。在这之前,智能感知只是试图帮助你,但不要把它当作权威的——它不是,也不能,因为它需要快速和交互(并且解析/编译C++是什么)。<代码> cPt>代码>和标题“代码> cTime/Calp> @ JePijull不一样,但我不会在这样简单的事情上失败,对于自动完成和代码验证来说,这非常烦人。@user12808212如果Microsoft的Intellisense达不到您的期望,我建议您向Microsoft打开一份错误报告。他们是唯一能帮助你的人。我,我只是完全远离这样的工具。我喜欢能够相信我的工具告诉我的,所以我不使用自动完成、智能感知等。我只是构建代码并查看编译器的输出。
{
"files.associations": {
"cctype": "cpp",
"cmath": "cpp",
"cstddef": "cpp",
"cstdlib": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"random": "cpp",
"ratio": "cpp",
"iostream": "cpp"
}
}