我正在开发OSX Yosemite,我从自制软件中安装了gcc-4.8
。
以下程序在编译时失败(例如 gcc-4.8 main.c
):
#include <stdio.h>
int main(void)
{
printf("hello world");
return 0;
}
错误:
main.c:8:19: fatal error: stdio.h: No such file or directory
#include <stdio.h>
^
compilation terminated.
和
$`gcc-4.8 -print-prog-name=cc1` -v
收益 率
ignoring nonexistent directory "/usr/local/Cellar/gcc48/4.8.4/lib/gcc/4.8/gcc/x86_64-apple-darwin14.3.0/4.8.4/../../../../../../x86_64-apple-darwin14.3.0/include"
ignoring nonexistent directory "/usr/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/Cellar/gcc48/4.8.4/lib/gcc/4.8/gcc/x86_64-apple-darwin14.3.0/4.8.4/include
/usr/local/include
/usr/local/Cellar/gcc48/4.8.4/include
/usr/local/Cellar/gcc48/4.8.4/lib/gcc/4.8/gcc/x86_64-apple-darwin14.3.0/4.8.4/include-fixed
/System/Library/Frameworks
/Library/Frameworks
End of search list.
和
$ find /usr/local/ -name "stdio.h" -print
收益 率
/usr/local//Cellar/gcc/5.2.0/include/c++/5.2.0/tr1/stdio.h
/usr/local//Cellar/gcc/5.2.0/lib/gcc/5/gcc/x86_64-apple-darwin14.4.0/5.2.0/include/ssp/stdio.h
/usr/local//Cellar/gcc48/4.8.4/include/c++/4.8.4/tr1/stdio.h
/usr/local//Cellar/gcc48/4.8.4/lib/gcc/4.8/gcc/x86_64-apple-darwin14.3.0/4.8.4/include/ssp/stdio.h
/usr/local//include/c++/4.8.4/tr1/stdio.h
/usr/local//lib/gcc/4.8/gcc/x86_64-apple-darwin14.3.0/4.8.4/include/ssp/stdio.h
现在我知道我可以通过-I /path/to/directory
让编译器找到正确的头文件,但天哪,这stdio.h
! 我不想为愚蠢的小程序这样做。 如何修复此缺陷?
我最终删除了酿造配方并重新安装了它。 它现在可以工作了,我仍然不清楚它在哪里/何时损坏。
编辑事实证明,这个问题已经为我发生了好几次。 每次我升级OSX或Xcode时都会发生这种情况。