TL; DR
최신 '명령 줄 도구'패키지를 다운로드하고 터미널 (명령 줄)에서 실행하십시오.
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Catalina에 대한 일부 정보는 Catalina 10.15로 업그레이드 한 후 Mac에서 C 프로그램을 컴파일 할 수 없음을 참조하십시오 .
다소 광범위한 의견에서 반 일관된 답변을 추출하는 중…
전문
종종 xcode-select --install
올바른 해결책 이었지만 이번에는 도움이되지 않는 것 같습니다. 기본 Xcode GUI 인터페이스를 실행 해 보셨습니까? 추가 소프트웨어를 설치하고 정리할 수 있습니다. Xcode 10.0을 설치 한 후 일주일 이상 전에 Mojave로 업그레이드하기 전에 그렇게했습니다.
GCC가에 설치된 경우 /usr/local/bin
Xcode의 GCC를 사용하지 않는 것 같습니다. 일반적으로에 설치됩니다 /usr/bin
.
나도 macOS 10.14 Mojave 및 Xcode 10.0으로 업데이트했습니다. 그러나 시스템 /usr/bin/gcc
과 시스템 모두 /usr/bin/clang
나를 위해 일하고 있습니다 ( Apple LLVM version 10.0.0 (clang-1000.11.45.2) Target: x86_64-apple-darwin18.0.0
두 가지 모두). 집에서 만든 GCC 8.2.0에서 헤더를 찾지 못하는 /usr/include
문제가 /usr/local/bin/gcc
있습니다. 이는 헤더를 찾지 못하는 문제와 유사 합니다.
약간의 비교를 마쳤으며 Mojave 시스템에는 전혀 없지만 /usr/include
아직 /usr/bin/clang
컴파일 할 수 있습니다. 머리글 ( _stdio.h
, 밑줄이 그어진)이 내 예전에있었습니다 /usr/include
. 지금은 누락되었습니다 (따라서 GCC 8.2.0의 문제). 나는 xcode-select --install
" xcode-select: note: install requested for command line developer tools
" 라고 말한 다음 동의 한 라이센스를 보여주는 GUI 설치 프로그램을 실행했으며 명령 줄 도구를 다운로드하여 설치했습니다.
그런 다음 Xcode GUI (명령 공간, Xcode, return)를 실행했으며 더 많은 소프트웨어를 설치해야하지만 여전히 no이라고 말했습니다 /usr/include
. 하지만 컴파일 수 /usr/bin/clang
와 /usr/bin/gcc
- 그리고 -v
옵션은 사용중인 제안
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
작업 솔루션
그런 다음 Maxxx 는 다음 과 같이 지적했습니다 .
방법을 찾았습니다. Xcode 10을 사용하는 경우 /usr
Finder에서로 이동 하면 더 이상 'include'라는 폴더가 표시되지 않으므로 터미널에 포함 된 헤더 파일이 없다고 터미널이 불평합니다 'include'폴더 에서 엑스 코드 10.0 릴리스 노트 ,이 패키지가 말한다 :
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
/usr/include
폴더를 설치 하려면 해당 패키지를 설치해야합니다 . 그렇다면 잘 가야합니다.
다른 모든 방법이 실패하면 설명서 또는이 경우 릴리스 정보를 읽으십시오. 애플이 유닉스 문화 유산을 등지고 싶어한다는 사실에 놀랄만큼 놀랍지는 않지만 실망합니다. 그들이 조심한다면, 그들은 나를 몰아 낼 수있었습니다. 정보 주셔서 감사합니다.
커맨드 라인에서 다음 명령을 사용하여 패키지를 설치하면 /usr/include
다시 한 번 GCC 8.2.0 이 다시 작동합니다.
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
명령 줄 도구 다운로드
Vesal 이 귀중한 의견 에서 지적한 것처럼 Mojave 10.14에서 Xcode 10.1 용 Command Line Tools 패키지를 다운로드해야합니다.
다운로드를 받으려면 Apple ID로 로그인해야합니다. 다운로드가 완료되면 Command Line Tools 패키지를 설치하십시오. 그런 다음 '작업 솔루션'섹션에 설명 된대로 헤더를 설치하십시오.
이것은 Mojave 10.14.1에서 나를 위해 일했습니다. 전에 이것을 다운로드 했어야했지만이 질문에 대답 할 때까지 잊어 버렸습니다.
Mojave 10.14.4 및 Xcode 10.2로 업그레이드
2019 년 5 월 17 일쯤에 Mojave 10.14.4로 업데이트되었으며 Xcode 10.2 명령 줄 도구도 업그레이드되었습니다 (또는 Xcode 10.1 명령 줄 도구가 10.2로 업그레이드되었습니다). open
도시 명령은 상기 누락 헤더를 고정. 기본 Xcode를 10.2로 업그레이드 한 다음 명령 행 도구 및 헤더 패키지를 다시 설치하는 모험이 여전히있을 수 있습니다.
Xcode 10.3으로 업그레이드 (Mojave 10.14.6 용)
2019-07-22에서 App Store를 통해 Xcode 10.3으로의 업그레이드가 가능하며 iOS 12.4, tvOS 12.4, watchOS 5.3 및 macOS Mojave 10.14.6 용 SDK가 포함되어 있음을 알았습니다. 10.14.5 머신 중 하나를 설치하고 실행했으며 제안한대로 추가 구성 요소를 설치했는데 /usr/include
그대로 남아 있습니다.
같은 날, 명령 줄 유틸리티 패키지 IIRC (자동 다운로드 및 설치)와 함께 macOS Mojave 10.14.6도 사용할 수 있음을 발견했습니다 (시스템 환경 설정 ⟶ 소프트웨어 업데이트). o / s 업데이트를 설치하면을 한 번 더 지 웠지만 답변 맨 위에 /usr/include
있는 open
명령이 다시 복원되었습니다. 내가 open
명령에 파일에 있던 날짜 는 2019-07-15입니다.
XCode 11.0으로 업그레이드 (Catalina 10.15 용)
XCode 11.0으로의 업그레이드 ( "iOS 13, tvOS 13, watchOS 6 및 macOS Catalina 10.15 용 Swift 5.1 및 SDK 포함")가 2019-09-21에 릴리스되었습니다. '사용 가능한 업데이트'에 대한 알림을 받고 App Store 앱 (업데이트 탭)을 통해 macOS Mojave 10.14.6을 실행하는 컴퓨터에 문제없이 다운로드하고 설치했습니다 /usr/include
. 설치 직후 (응용 프로그램 자체를 실행하기 전에) 다시 컴파일을 시도하고 다음과 같이 들었습니다.
Xcode / iOS 라이센스에 동의하려면 관리자 권한이 필요합니다.“sudo xcodebuild -license”를 실행 한 다음이 명령을 다시 시도하십시오.
그 ( sudo xcodebuild -license
)를 실행하면 컴파일러를 실행할 수있었습니다. 그 이후로 필요한 추가 구성 요소를 설치하기 위해 응용 프로그램을 실행했습니다. 여전히 문제 없습니다. Catalina 자체로 업그레이드 할 때 어떤 일이 발생하는지 알 수 있습니다. 그러나 현재 macOS Mojave 10.14.6 시스템은 모두 정상입니다 (2019-09-24).
echo "#include <a.h>" | gcc -v -x c -