【发布时间】:2019-03-29 04:24:05
【问题描述】:
在更新到 Mojave 之前,我正在编译 C 程序。我使用的是旧版本的 gcc 7.3,它是按照 here 的说明安装的。
然后我更新到 Mojave 并尝试用 gcc main.c 编译下面的简单程序:
#include <stdio.h>
int main(){
printf("Hello World\n");
return 0;}
这会导致以下错误:
/usr/local/lib/gcc/x86_64-apple-darwin17.5.0/7.3.0/include-fixed/stdio.h:78:10: fatal error: _stdio.h: No such file or directory
#include <_stdio.h>
^~~~~~~~~~
compilation terminated.
如果我删除包含,它将编译并带有 printf 的隐式声明警告,但仍会正确编译和运行,打印 Hello World。有谁知道这个问题以及我该如何解决?
【问题讨论】:
-
我运行了您在上面粘贴的程序,它对我来说运行良好。但是,当我将
stdio.h更改为_stdio.h时,我得到了同样的错误。我会仔细检查并确保你那里没有错字。如果这不是问题,那么它与编译器中的一些错误有关。尝试安装一个不同的? -
我认为您必须在升级到 Mojave 后至少启动一次 Xcode GUI 并进行更新才能正常工作。
-
@BilalSaleem:此问题不是由拼写错误引起的,从错误消息中可以看出,该错误消息显示尝试在某些安装路径中包含
_stdio.h来自stdio.h,而不是源或通常的用户路径中的头文件。这是编译器安装损坏的证据。