我是C++和Visual Studio代码的新手,所以我不知道如何解决这个问题。我试着在 * Using Clang in Visual Studio Code * 中浏览教程,但我似乎无法粘贴他们的“Hello, World!“代码而不出现 iostream、vector 和 string 错误。
我还看到一些帖子建议我修改配置中的 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错误。请更新您的includePath。已禁用此翻译单元的波形字符(/Users/rjc/projects/helloworld/helloworld.cpp)。C/C++(1696)
我在includePath中添加了这一行(配置页面声明每行添加一个includePath,因此我将这两条语句放在单独的行中):
一米一米一x一米二米一x
然而这并没有减少错误的数量,我真的不知道在这里该做什么,因为教程似乎对我不起作用。
我正在运行macOS 11.1(Big Sur)和Clang版本12.0.0。为什么会出现这些问题?
5条答案
按热度按时间p1iqtdky1#
您的includePath只有
${workspaceFolder}
。您需要将路径添加到系统目录。运行此命令并确保所有打印出来的路径都列在您的 c_cpp_properties.json 文件中:gcc -v -E -x c++ -
k97glaaz2#
您只需在
c_cpp_properties.json
文件中更改3次。1.“名称”:“Mac”
1.将“usr/include/linux”添加到“包含路径”中
1.“智能感知模式”:“叮当-x64”
此解决方案仅适用于Linux用户。
kpbwa7wx3#
确保
compilerPath
设置中的编译器存在并且支持C++。我看到这些stdlib包含错误的(CentOS)系统上安装了GCC没有C++支持。安装丢失的软件包修复了Visual Studio代码中的错误。未能从终端编译hello.cpp表明我的根本问题不在Visual Studio代码中。
ssm49v7z4#
在Ubuntu上我安装了不同的gcc/g版本。
检查您的c版本
检查目录
/usr/include/c++
,如果缺少相应的版本(10/或11/或12/),请安装sudo apt install libstdc++-XX
。我必须安装libstdc++-12
drkbr07n5#
我也有同样的问题,我想尽一切办法让它工作。
然后我意识到,当我命名文件时,我只将其命名为 helloworld,而不是后面的 * helloworld.cpp *,因为在我使用的其他IDE中不需要这样做。