Visual Studio代码 - 无法打开源文件“iostream”

时间:2017-12-03 08:58:04

标签: visual-c++ visual-studio-code

我只是想用Visual Studio代码尝试c ++编码。我已将vscode 1.18.1安装到我的笔记本电脑(Win10-64)。

键入以下代码我收到错误:

#include <iostream>
using namespace std;
int main()
{
    std::cout << "Hello world!" <<endl;
    return 0;
}

应该没有错误发生。 C:\ Users \ Harri \ OneDrive \ Tiedostot \ Demo2.vscode \ c_cpp_properties.json -content:

“路径”:[                     “在/ usr /包括”,                     “在/ usr /本地/包括”                     “$ {} workspaceRoot”                 ]

第1行的问题/错误:

“检测到#include错误。请更新您的includePath。标记解析器将提供此翻译单元的智能感知功能(C:\ Users \ Harri \ OneDrive \ Tiedostot \ Demo2 \ Calc.cpp)。”

“无法打开源文件”iostream“”

1 个答案:

答案 0 :(得分:0)

主要问题是cygwin路径

您的/usr/include文件中有诸如c_cpp_properties.json之类的cygwin路径。这是一个问题,因为VSCode无法理解cygwin路径。在Cygwin Shell上,您可以运行:

  $ cygpath -w /usr/include
  D:\cygwin64\usr\include

获取等效的Windows路径。将其放入c_cpp_properties.json中。请记住,将其复制到JSON字符串时,必须将反斜杠加倍。

其他建议

This SO answer介绍了如何使用cygwin gcc设置VSCode。我没有尝试过这些说明,但是看起来很合理。

除此之外,我强烈建议您阅读VSCode网站上的Get Started with C++教程。它可能会直接回答您的问题,但是即使没有,也可以进行比较以进行设置很有价值。

此外,还要查看C / C ++诊断:视图→命令面板...→C / C ++:日志诊断。这将显示诸如VSCode试图模拟哪个编译器以及它认为#include路径是什么的事情。

最后,要直接从编译器获取很多有用的信息,以与VSCode认为的进行比较,如果使用的是gcc,请在cygwin或bash提示符下运行:

  $ touch empty.c
  $ gcc -v -E -dD empty.c > compiler-info.txt

这会将所有预定义的宏,#include搜索路径,默认目标等写入compiler-info.txt