@ Джонатан Леффлер прав.Apple сделала еще один большой торт для нас.Поскольку / usr / include был перемещен (теперь он находится в /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include после установки инструментов командной строки), старые версии gcc build не могут найти самый нижний уровень includeфайлы .И это является проблемой.(Что там у них в голове) Так что только вы разработчик и используете / usr / include?
Это НЕ Unix-like.
Вот что случилось.Для gcc-4.9 (gcc-4.9 и gcc-9 ниже - все brew gcc.) Следующие пути поиска включают:
enter ignoring nonexistent directory "/usr/include"
#include "..." search starts here:
#include <...> search starts here:
.
/usr/local/include
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include
/usr/local/Cellar/gcc@4.9/4.9.4_1/lib/gcc/4.9/gcc/x86_64-apple-darwin17.3.0/4.9.4/include
/usr/local/Cellar/gcc@4.9/4.9.4_1/include
/usr/local/Cellar/gcc@4.9/4.9.4_1/lib/gcc/4.9/gcc/x86_64-apple-darwin17.3.0/4.9.4/include-fixed
/System/Library/Frameworks
/Library/Frameworks
End of search list. here
Существует файл системного уровня stdio.h, поэтому stdio.hне может быть найден.
Проблема в:
inverse.c:1:10: fatal error: stdio.h: No such file or directory
#include <stdio.h>
^~~~~~~~~
compilation terminated.
is :
См. /usr/local/Cellar/gcc@4.9/4.9.4_1 / lib / gcc / 4.9 / gcc / x86_64-apple-darwin17.3.0 / 4.9.4 / include / ssp / stdio.h
#ifndef _SSP_STDIO_H
#define _SSP_STDIO_H 1
#include <ssp.h>
#include_next <stdio.h>
# include_next означает включение следующего имени stdio.hэтот просто гид.
Дайте устаревший выстрел.cp все файлы в /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include to /usr/local/Cellar/gcc@4.9/4.9.4_1/lib/gcc/4.9/gcc/x86_64-apple-darwin17.3.0 / 4.9.4 / include-fixed, gcc-4.9 снова будет работать.
Но для gcc-9 проблема пути в порядке.См .:
#include "..." search starts here:
#include <...> search starts here:
.
/usr/local/include
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include # key path
/usr/local/Cellar/gcc/9.1.0/lib/gcc/9/gcc/x86_64-apple-darwin18/9.1.0/include
/usr/local/Cellar/gcc/9.1.0/lib/gcc/9/gcc/x86_64-apple-darwin18/9.1.0/include-fixed
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks
End of search list.
На самом деле эту ошибку можно просто исправить, переустановив инструменты командной строки xcode, после этого gcc-4.9 снова заработает.