编译错误:“stddef.h:没有这样的文件或目录”

新手上路,请多包涵

每当我尝试编译此代码时,它总是以这个错误结束:

     In file included from /usr/include/wchar.h:6:0,
             from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/cwchar:44,
             from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/bits/postypes.h:40,
             from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/iosfwd:40,
             from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/ios:38,
             from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/ostream:38,
             from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/iostream:39,
             from test.cpp:1:
    /usr/include/sys/reent.h:14:20: fatal error: stddef.h: No such file or directory
    #include <stddef.h>
                ^
    compilation terminated.

我试图编译的代码是:

 #include <iostream>
using namespace std;

int main()
{
    cout << "Hello World! :D";
    return 0;
}

原文由 Louie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.8k
2 个回答

该错误是因为您的 gcc-core 包和 gcc-g++ 不是同一版本。要么降级其中一个以解决问题,要么更新两个库。更新这两个库是推荐的方法。

原文由 ThisIzKp 发布,翻译遵循 CC BY-SA 3.0 许可协议

在使用 MinGW 安装 C++ 编译器后,我也遇到了这个问题。显然,您还必须安装 mingw32-base。转到 C:/MinGW/bin/mingw-get.exe(我的路径)并在 Basic Setup 选项卡上检查它的安装。

原文由 georbbtz 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题