致命错误:_stdio.h文件或目录不存在。

3

我正在使用一个makefile编译一个开源的N体积分器(在github上找到它),使用C语言编写。这个makefile一直以来都可以在超级计算机上编译代码,但最近在我的个人电脑上却无法正常工作。

我有两台电脑,一台新的Macbook Pro和一台稍微旧一些的iMac。这两台电脑都安装了homebrew版本的gcc 8.2.0,因为默认的Mac编译器缺少OpenMP。

然而,在我的个人电脑上运行makefile时,我在rebound.c中包含的文件中遇到了一个错误(rebound.c是src/目录下REBOUND的基本源文件)。错误显示stdio.h文件试图包含一个不存在的文件_stdio.h。现在,导致此错误的特定stdio.h文件深藏在homebrew Cellar中8.2.0 gcc安装中的一个名为“include-fixed”的目录中。实际上,如果我去查看这个stdio.h文件,它确实试图包含一个名为_stdio.h的文件。

有人能告诉我这里发生了什么吗?我从未见过头文件名称中带有下划线。我几乎倾向于认为这是我gcc安装中stdio.h文件的一个拼写错误?我已经“brew upgrade”了gcc,只是为了确保我有最新的版本,但我仍然遇到这个错误?

我该如何解决这个问题?

1个回答

2

我也遇到了同样的问题。

本意是加载实际的系统 stdio.h,并在那里解决问题。显然,这个做法不起作用。有趣的是,加载原始的 /usr/include/stdio.h 不会引起任何问题,因此只需删除修复后的文件即可解决问题。


感谢您的帮助。我编辑了REBOUND源代码目录中的Makefile.defs文件,将/usr/include包含在内(它没有自动执行此操作),这样就解决了问题,而无需删除任何文件。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接