GCC 치명적 오류 : stdio.h : 해당 파일 또는 디렉토리가 없습니다.


90

GCC 4.9 (실험적)를 사용하여 OS X 10.9에서 C로 프로그램을 컴파일하려고합니다. 어떤 이유로 컴파일 타임에 다음 오류가 발생합니다.

gcc: fatal error: stdio.h: No such file or directory

그런 다음 간단한 Hello World 프로그램을 시도했습니다.

#include <stdio.h>

int main(int argc, const char *argv[])
{
    printf("Hello, world!");
    return 0;
}

다시, 실행시 gcc -o ~/hello ~/hello.c동일한 오류가 발생했습니다. 의 실험용 버전을 사용하고 gcc있지만 가져올 때 오류가 발생하는 릴리스가있을 것 stdio입니다. 이 문제의 원인은 무엇이며 어떻게 해결할 수 있습니까?


11
echo "#include <bogus.h>" | gcc -v -x c -검색 경로를 수행 하고 검사하여 gcc가 헤더 파일을 찾는 위치를 확인할 수 있습니다 .
Christian Ternus 2013 년

1
매우 유용한 명령! stdio.hGCC의 검색 경로에있는 것처럼 보이지 않습니다 .
Jules

2
Mavericks에는 더 이상 기본 / usr / include가 없습니다. XCode OS 10.9 SDK에서 해당 위치에 링크해야합니다.
Yann Ramin 2013 년

3
BTW, int main의 첫 번째 매개 변수는 int이며 int * argc가 아닙니다.
p0lAris 2013-10-25

3
@ user2615799에서 그것sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
얀 라민

답변:


141

맥 OS X

나도이 문제가있었습니다 (Macports 컴파일러를 통해 발생했습니다). 이전 버전의 Xcode에서는 xcode / Preferences를 통해 명령 줄 도구를 설치할 수 있었지만 xcode5는 GUI에 명령 줄 도구 옵션을 제공하지 않으므로 이제 자동으로 포함되었다고 가정했습니다. 다음 명령을 실행 해보십시오.

xcode-select --install

우분투

(이 답변에 따라 )

sudo apt-get install libc6-dev

알파인 리눅스

(이 댓글에 따라 )

apk add libc-dev

Xcode 6 베타 5를 사용하는 경우이 명령이 실패 할 수 있습니다. 이 경우 sudo xcode-select -s /Applications/Xcode.app. 완료되면 sudo xcode-select -s /Applications/Xcode6-Beta5.app.
Sjors Provoost

1
와. 그럼에도 불구하고 2017 년에 엑스 코드 8.0 시에라 작업
user124384

1
알파인 가이드는 알파인 배포판을 기반으로하는 Docker 이미지에 매우 유용하며 원하는대로 작동합니다
VanDavv

Windows 사용자를위한 제안? Windows에서이 문제가 발생했습니다
Ratul Hasan

1
CLT를 설치 한 후에도 여전히 문제가있는 macOS 사용자를 위해 stackoverflow.com/questions/63342521/…
anki

46

Mac OS Mojave

허용 된 답변은 더 이상 작동하지 않습니다. 명령을 실행할 때 xcode-select --install"소프트웨어 업데이트"를 사용하여 업데이트를 설치하라는 메시지가 표시됩니다.

링크 에는 업데이트 된 방법이 있습니다.

터미널을 열고 다음을 수행하십시오.

cd /Library/Developer/CommandLineTools/Packages/
open macOS_SDK_headers_for_macOS_10.14.pkg

설치 마법사가 열립니다.

업데이트 12/2019

Mojave 10.15.1로 업데이트 한 후 xcode-select --install의도 한대로 작동 하는 것 같습니다 .


헤더를 다시 설치하면 Xcode 10.2로 업그레이드 할 때도 작동합니다.
Bojan Dimovski

macOS_SDK_headers_for_macOS_10.14.pkg를 열면 설치 프로그램에서 "이 패키지는이 macOS 버전과 호환되지 않으며 설치에 실패 할 수 있습니다."라는 무서운 경고가 표시됩니다. 모하비가 있습니다.
Steve Siegel

@SteveSiegel 실행중인 Mac OS 버전은 무엇입니까? 10.15.1로 업그레이드했고 더 이상이 해결 방법을 수행 할 필요가 없습니다. 그것을 반영하기 위해 내 대답을 업데이트했습니다.
Samshel

"Mojave 10.15.1로 업데이트"는 올바르지 않습니다. @SteveSiegel pkg는 더 이상 사용되지 않습니다. SDKROOT를 사용해야합니다. stackoverflow.com/a/63343829/10063119
anki

23

우분투 사용자 :

sudo apt-get install libc6-dev

특히 gem install json -v '1.8.2'VM에 설치하는 데 문제가있는 루비 개발자


1
흥미 롭군. 감사. 이 lib는 또한 몇 가지 다른 문제를 해결합니다. 최근에 나는 petabyet.com (gcc를 사용하는)에 대한 벤치 마크를 실행하려고하는 것을 발견했습니다.
dhaupin

14
고산 리눅스에 나는 필요apk add libc-dev
샤디

3

나는 같은 문제가 있었다. 앱 스토어에서 "XCode : 개발 도구"를 설치했는데 문제가 해결되었습니다.

이 링크가 도움이 될 것 같습니다 : https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ls=1

조언을 해준 Yann Ramin에게 감사드립니다. 링크가있는 더 나은 솔루션이 있다고 생각하지만 이것은 쉽고 빠릅니다.

행운을 빕니다!


정상적인 Xcode를 언급하고 있습니까? 아니면 "XCode : 개발 도구"라는 특별한 버전이 있습니까? App Store에서 일반 Xcode 만 볼 수 있기 때문입니다. 물론,이 답변이 게시 된 후 4 년 후입니다.
user124384

1

제 케이스가 드물다는 것을 알고 있지만 나중에 문제를 해결하는 사람을 위해 여기에 추가하겠습니다. Makefile에 Linux Kernel 모듈 대상이 있고 stdio가없는 커널 모듈과 함께 사용자 공간 프로그램을 컴파일하려고했습니다. 그것을 별도의 목표로 삼아 문제를 해결했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.