【问题标题】:fatal error: _stdio.h: No such file or directory致命错误:_stdio.h:没有这样的文件或目录
【发布时间】:2018-10-02 04:04:01
【问题描述】:

我正在用 C 语言编译一个开源的 N 体集成器(REBOUND,在 github 上找到它),使用的 makefile 基本上一直有效。 makefile 在超级计算机上可以很好地编译代码,但最近在我的个人计算机上停止了工作。

我在两台电脑上工作,一台新的 Macbook Pro 和一台稍旧的 iMac。由于默认的 Mac 编译器缺少 OpenMP,两台计算机都有自制版本的 gcc 8.2.0。

无论如何,当我尝试在我的个人计算机上运行 makefile 时,我在一个包含在 needle.c 中的文件(在 src/ 目录中的 REBOUND 的基本源文件)中遇到错误。该错误表明,rebound.c 中包含的 stdio.h 文件试图包含一个不存在的文件 _stdio.h。现在,导致此错误的特定 stdio.h 文件深埋在自制软件 Cellar 中名为“include-fixed”的目录中的 8.2.0 gcc 安装中。事实上,如果我查看这个 stdio.h 文件,它确实会尝试包含一个文件 _stdio.h

谁能告诉我这里发生了什么?我以前从未在头文件的名称中看到过下划线。我几乎倾向于相信这是我的 gcc 安装中 stdio.h 文件中的错字?我“brew upgrade”d gcc 只是为了确保我有一个当前版本,但我仍然收到这个错误?

我该如何解决这个问题?

【问题讨论】:

    标签: gcc stdio


    【解决方案1】:

    同样的问题。

    目的是加载实际的系统 stdio.h,并“修复”那里的问题。显然这并不顺利。有趣的是,加载原始的 /usr/include/stdio.h 不会导致任何问题,因此只需删除固定文件即可解决问题。

    【讨论】:

    • 感谢您的帮助。我编辑了 REBOUND src 目录中的 Makefile.defs 文件以包含 /usr/include(它不会自动执行此操作),并且无需删除任何文件即可解决问题。
    猜你喜欢
    • 2017-05-09
    • 2021-05-15
    • 2014-10-31
    • 2022-01-11
    • 2021-09-19
    • 2016-06-23
    • 2015-05-16
    相关资源
    最近更新 更多