【发布时间】:2021-04-01 21:25:29
【问题描述】:
我是 c++ 和 vscode 的新手,所以我不确定如何解决这个问题。我尝试在https://code.visualstudio.com/docs/cpp/config-clang-mac 上阅读教程,但如果没有 iostream、向量和字符串错误,我似乎无法粘贴他们的“hello world”代码。我还在这里看到帖子表明我应该更改配置中的 includePath 字符串数组,但是将路径添加到我的项目文件夹似乎并不能消除这些错误。我在这里不知所措,因为到目前为止我所看到的一切仍然不起作用。
导致这些错误的代码已直接从上面的教程中复制粘贴:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};
for (const string& word : msg)
{
cout << word << " ";
}
cout << endl;
}
在前三行中,我收到了错误"cannot open source file {the included import's name}"。编译器声明#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (/Users/rjc/projects/helloworld/helloworld.cpp).C/C++(1696)
我在我的 includePath 中添加了这一行(配置页面状态每行添加一个 includePath,因此我将这两个语句放在不同的行上):
${workspaceFolder}/**
/Users/rjc/projects/helloworld/
但这并没有减少错误的数量。我不太确定在这里做什么,因为该教程似乎对我不起作用。
我正在运行带有 clang 版本 12.0.0 的 macOS Big Sur (11.1)。对于我为什么会遇到这些问题的任何直觉,我将不胜感激。
【问题讨论】:
-
尝试将
<iostream>替换为"iostream"...<header_file>和"header_file"之间存在差异,这里有一些你会发现有用的东西:*.com/questions/21593/… -
你试过直接编译吗?使用您的文件作为参数调用 clang++,如果它有效,则它是 VSCode 问题,而不是编译器问题。
-
我认为直觉是
includePath仅用于“智能感知”,它不会影响编译器。现在为什么你的编译器找不到头文件是另一个问题。正如 Kalldr 所说,您应该尝试在 VSCode 之外使用编译器来确定它是编译器问题还是 VSCode 问题。 -
@NovusEdge 我替换了所有三个,但编译器仍然返回相同的错误。它一直告诉我更新我的 includePath
-
@rjc810 该建议不正确(可能作为诊断工具除外)。
#include <iostream>是正确的代码。
标签: c++ macos visual-studio-code computer-science include-path