TL; DR
最新の「コマンドラインツール」パッケージをダウンロードして、ターミナル(コマンドライン)から実行してください。
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
カタリナの詳細については、「カタリナ10.15へのアップグレード後にMacでCプログラムをコンパイルできない」を参照してください。
かなり広範にわたるコメントから、首尾一貫した答えを抽出しています…
前文
多くの場合、xcode-select --install
これが正しい解決策でしたが、今回は役に立たないようです。メインのXcode GUIインターフェースを実行してみましたか?それはあなたのためにいくつかの追加のソフトウェアをインストールしてクリーンアップすることがあります。Xcode 10.0をインストールした後、1週間以上前、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)を実行したところ、さらにソフトウェアをインストールする必要があると言われましたが、まだありません/usr/include
。しかし、私は/usr/bin/clang
andでコンパイルできます/usr/bin/gcc
—そして-v
オプションは彼らが使用していることを示唆しています
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
実用的なソリューション
次にMaxxx は次のように述べています:
私は方法を見つけました。Xcode 10を使用している場合/usr
、Finderでに移動すると、「include」という名前のフォルダーが表示されないことに気づくでしょう。これは、内部に含まれているヘッダーファイルが存在しないことをターミナルが報告する理由です。 「include」フォルダ。ではXcodeの10.0リリースノート、それはパッケージがあると言います。
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
そして、そのパッケージをインストールして、/usr/include
フォルダーをインストールする必要があります。その後、あなたは行ってもいいはずです。
他のすべてが失敗した場合は、マニュアル、またはこの場合はリリースノートをお読みください。Appleが彼らのUnixの遺産に背を向けたいと思っているのに、私はそれほど驚いてはいませんが、私は失望しています。彼らが注意していれば、私を追い払ってくれるかもしれません。情報ありがとうございました。
コマンドラインで次のコマンドを使用してパッケージをインストールしたので、/usr/include
再びGCC 8.2.0が動作しました。
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
コマンドラインツールのダウンロード
以下のようVesalは貴重で指摘したコメントは、モハーベ10.14上のXcode 10.1用のコマンドラインツールパッケージをダウンロードする必要があり、あなたはから行うことができます。
ダウンロードするには、Apple IDでログインする必要があります。ダウンロードが完了したら、コマンドラインツールパッケージをインストールします。次に、「実用的なソリューション」のセクションで説明されているようにヘッダーをインストールします。
これは私にとって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に、Xcode 10.3へのアップグレードが利用可能であり、iOS 12.4、tvOS 12.4、watchOS 5.3およびmacOS Mojave 10.14.6のSDKが含まれていることがApp Storeから通知されました。10.14.5マシンの1つをインストールして実行し、提案どおりに追加のコンポーネントをインストールしましたが、/usr/include
そのまま残っているようです。
その日の後半、macOS Mojave 10.14.6(システム環境設定⟶ソフトウェアアップデート)と、コマンドラインユーティリティパッケージIIRC(自動的にダウンロードおよびインストールされた)が利用可能であることを発見しました。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 -