【发布时间】: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 只是为了确保我有一个当前版本,但我仍然收到这个错误?
我该如何解决这个问题?
【问题讨论】: