Próbuję skompilować program w C na OS X 10.9 z GCC 4.9 (eksperymentalnie). Z jakiegoś powodu w czasie kompilacji pojawia się następujący błąd:
gcc: fatal error: stdio.h: No such file or directory
Następnie wypróbowałem prosty program Hello World:
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("Hello, world!");
return 0;
}
Ponownie podczas uruchamiania gcc -o ~/hello ~/hello.c
wystąpił ten sam błąd. Używam eksperymentalnej wersji programu gcc
, ale wydaje się nieprawdopodobne, aby istniało wydanie, które generowało błędy podczas importowania stdio
. Co może powodować ten problem i jak można go naprawić?
echo "#include <bogus.h>" | gcc -v -x c -
i badając ścieżki wyszukiwania.stdio.h
znajduje się na żadnej ze ścieżek wyszukiwania GCC.int main
pierwszym parametrem jest int, a nie int * argc.sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
Odpowiedzi:
Mac OS X
Miałem też ten problem (napotkany przez kompilatory Macports). Poprzednie wersje Xcode pozwalały na instalowanie narzędzi wiersza poleceń za pośrednictwem xcode / Preferences, ale xcode5 nie daje opcji narzędzi wiersza poleceń w GUI, więc założyłem, że zostało to automatycznie włączone. Spróbuj uruchomić to polecenie:
Ubuntu
(zgodnie z tą odpowiedzią )
Alpine Linux
(zgodnie z tym komentarzem )
źródło
sudo xcode-select -s /Applications/Xcode.app
. Kiedy skończysz, przełącz się z powrotem, używającsudo xcode-select -s /Applications/Xcode6-Beta5.app
.Mac OS Mojave
Zaakceptowana odpowiedź już nie działa. Po uruchomieniu polecenia
xcode-select --install
informuje o użyciu „Aktualizacji oprogramowania” do zainstalowania aktualizacji.W tym linku jest zaktualizowana metoda:
Otwórz terminal, a następnie:
cd /Library/Developer/CommandLineTools/Packages/ open macOS_SDK_headers_for_macOS_10.14.pkg
Otworzy się kreator instalacji.
Aktualizacja 12/2019
Po aktualizacji do Mojave 10.15.1 wydaje się, że używanie
xcode-select --install
działa zgodnie z przeznaczeniem.źródło
Użytkownicy ubuntu:
sudo apt-get install libc6-dev
specjalnie dla programistów ruby, którzy mają problem z instalacją
gem install json -v '1.8.2'
na swoich maszynach wirtualnychźródło
apk add libc-dev
Miałem ten sam problem. Zainstalowałem „XCode: narzędzia programistyczne” ze sklepu z aplikacjami i rozwiązałem problem.
Myślę, że ten link pomoże: https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ls=1
Podziękowania dla Yanna Ramina za jego rady. Myślę, że istnieje lepsze rozwiązanie z linkami, ale było to łatwe i szybkie.
Powodzenia!
źródło
Wiem, że mój przypadek jest rzadki, ale nadal dodam go tutaj dla kogoś, kto rozwiąże go później. Miałem docelowy moduł jądra Linuksa w moim Makefile i próbowałem skompilować mój program przestrzeni użytkownika razem z modułem jądra, który nie ma stdio. Uczynienie go osobnym celem rozwiązało problem.
źródło