【问题标题】:Cannot open source file "sys/types.h" , "sys/stat.h"无法打开源文件“sys/types.h”、“sys/stat.h”
【发布时间】:2018-03-08 23:29:30
【问题描述】:

我正在使用 Visual Studio 2017。我刚刚更新它并开始在我拥有的每个项目中遇到此错误:

C++ 无法打开源文件“sys/types.h”
C++ 无法打开源文件“sys/stat.h”

没有找到任何类似的问题,如果重复,非常抱歉。错误是文件 wchar.h 中的这 2 行,两个错误的错误代码都是 E1969,尝试修复但没有奏效,任何帮助将不胜感激!

#include <sys/stat.h>
#include <sys/types.h>

【问题讨论】:

  • 因为这些标题不是标准的。
  • 检查文件是否存在。最近 VS2017 版本的典型安装路径是 C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\sys。接下来检查项目 > 属性 > VC++ 目录 > 包含目录。
  • @HansPassant:嗯,那么 VS 是否 提供这些标头的版本?
  • 当然,编译器 .h 文件中的这些 #include 不会从天而降。
  • @HansPassant:没有人告诉我任何编译器 .h 文件。不需要蛇皮。我期待着阅读您的回答!

标签: c++ visual-studio-2017


【解决方案1】:

对于 Visual Studio 2019 CE,路径是

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt

【讨论】:

    【解决方案2】:

    我遇到了#include &lt;sys/types.h&gt; 的问题,我可以通过启用Property Pages/Configuration Properties/VC++ Directories/Include Directories/&lt;DropDown&gt;/&lt;Edit...&gt; 对话框上的“从父级或项目默认值继承”按钮来解决该问题。这已经以某种方式被清除了。

    这会导致添加以下路径:

    $(VC_IncludePath)
    $(WindowsSDK_IncludePath)
    

    我正在使用 Visual Studio Professional 2017 版本 15.9.18

    【讨论】:

      【解决方案3】:

      当我在旧版本的 Visual Studio 中打开其他人创建的项目时遇到此错误。以下是我的解决方法:

      转到项目 > [项目名称] 属性...

      单击 VC++ 目录

      选择包含目录,然后单击右侧的下拉箭头并选择编辑...

      单击新行图标(看起来像新文件夹图标)

      单击 ... 浏览目录

      导航到 C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt (注意不要深入到 sys 文件夹)

      点击选择文件夹>确定>确定

      一旦我这样做了,该错误以及代码中的相关错误就消失了。

      【讨论】:

        【解决方案4】:

        我安装了最新版本的 VS2017 社区,这些标题现在位于此处: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\SDK\ScopeCppSDK\SDK\include\ucrt\sys 的目录

        2017-11-21  07:50 PM    <DIR>          .
        2017-11-21  07:50 PM    <DIR>          ..
        2017-11-21  04:59 PM               609 locking.h
        2017-11-21  04:59 PM             6,615 stat.h
        2017-11-21  04:59 PM             2,446 timeb.h
        2017-11-21  04:59 PM               740 types.h
        2017-11-21  04:59 PM             4,643 utime.h
        

        更新路径引用,如果引用不在您自己的代码中,则重新安装 SDK。这是 MS 伟大的 Universal CRT 重构的一部分。见这里,例如: https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-08-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多