ターミナルでgccコマンドを使ってCプログラムをコンパイルしましたが、突然、私のMacのOSを(macOS 10.14 MojaveとXCode 10.0に)アップデートした後、メッセージを受け取り始めました。
test.c:8:10: fatal error: stdio.h: No such file or directory
#include <stdio.h>
^~~~~~~~~
compilation terminated.
/usr/local/bin
で見つけることができるので、私はすでにgccをインストールしています、そしてそこに本当にgccがあります。私は他のiMacで同じファイルを実行しようとしましたが、問題なく動作しました。
私はxcode-select --install
を実行しようとしました、そしてそれはすでにインストールされていました、それでそれは私が今抱えている問題を解決しませんでした。この問題を解決するために他のリソースからいくつかのコマンドをコピーして貼り付け始めた後でgcc
を見つけることができないように思われるので、パスはめちゃくちゃになっていると思います。
これについて何か手助けをしたいです。
最新の「コマンドラインツール」パッケージをダウンロードしたことを確認し、ターミナル(コマンドライン)からこれを実行します。
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
かなり広範なコメントから半一貫性のある回答を抽出しています…
多くの場合、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
)。/usr/include
の問題と並行して、自家製のGCC 8.2.0が/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、リターン)を実行しましたが、さらにソフトウェアをインストールする必要があると言われましたが、/usr/include
はまだありません。しかし、私は/usr/bin/clang
と/usr/bin/gcc
でコンパイルできます— -v
オプションは、使用していることを示唆しています
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
方法を見つけました。 Xcode 10を使用している場合は、Finderで
/usr
に移動すると、「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 は貴重な comment を示しているため、Mojave 10.14でXcode 10.1のコマンドラインツールパッケージをダウンロードする必要があります。
ダウンロードを取得するには、Apple IDでログインする必要があります。ダウンロードが完了したら、コマンドラインツールパッケージをインストールします。次に、「Working Solution」セクションの説明に従ってヘッダーをインストールします。
これはMojave 10.14.1で機能しました。以前にこれをダウンロードしたに違いありませんが、この質問に答えていた頃には忘れていました。
2019-05-17またはその前後に、Mojave 10.14.4に更新し、Xcode 10.2コマンドラインツールもアップグレードされました(またはXcode 10.1コマンドラインツールが10.2にアップグレードされました)。上記のopen
コマンドは、欠落しているヘッダーを修正しました。メインのXcodeを10.2にアップグレードし、コマンドラインツールとヘッダーパッケージを再インストールするという冒険がまだあるかもしれません。
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マシンの1つにインストールして実行し、提案どおりに追加のコンポーネントをインストールしましたが、/usr/include
はそのまま残っているようです。
同じ日、macOS Mojave 10.14.6も利用可能(システム環境設定⟶ソフトウェアアップデート)に加えて、コマンドラインユーティリティパッケージIIRC(自動的にダウンロードおよびインストールされた)を発見しました。 o/s更新プログラムをインストールすると、もう一度/usr/include
が消去されましたが、回答の上部にあるopen
コマンドで復元されました。 open
コマンドのファイルの日付は2019-07-15です。
私がここでそしてオンラインで見つけることができたすべての答えを試みた後、私はまだいくつかの行方不明のヘッダーのためのエラーを得ていました。 pyRFRをコンパイルしようとしたとき、stdexcept
が見つからないというエラーが出ました。これは明らかに他のヘッダとともに/usr/include
にインストールされていませんでした。しかし、私はそれがMojaveのどこに隠れているのかを見つけ、これを私の~/.bash_profile
ファイルの最後に追加しました:
export CPATH=/Library/Developer/CommandLineTools/usr/include/c++/v1
これで、pyRFRと他のC/C++プログラムをコンパイルすることができます。 echo | gcc -E -Wp,-v -
によると、gccはこれらのヘッダーの古い場所(/c++/v1
は除く)を探していましたが、新しい場所は探していませんでした。そのため、それをCFLAGSに追加しました。
問題は、Xcode、特にXcode 10.xがすべてをインストールしていないので、コマンドラインツールがインストールされていることを確認するには、ターミナルシェルに次のように入力します。
xcode-select --install
xCodeも起動して、必要なインストールがすべてインストールされていることを確認し(インストールされていない場合はプロンプトが表示されます)、XCode 10は完全なMac OS SDKをインストールしないため、
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
このパッケージはXCode 10ではインストールされないためです。
必ずXcodeの設定 - >場所を確認してください。
私が選択したコマンドラインツールは、Xcodeの以前のバージョン用です(10.1ではなく8.2.1)。
OPと同じような問題がありました
猫こんにちは。
#include <stdlib.h>
int main() { exit(0); }
こんにちはhello.c
/usr/local/include/stdint.h:2:10: error: #include nested too deeply
etc...
私はXCodeの最新版をインストールしました、しかし、リリースノートは、ここJonathanからの、以前の修正で言及されたファイルがもう利用できないことを示しました。
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
詳細はこちら https://developer.Apple.com/documentation/xcode_release_notes/xcode_10_release_notes 、 新機能 のセクションにあります。
このコメントの詳細を使用して、 https://github.com/SOHU-Co/kafka-node/issues/881#issuecomment-396197724
私はbrew doctor
が私の/usr/local/
フォルダに未使用のインクルードがあると報告したことを知りました。
そこで修正するために、私はユーザー HowCrazy によって提供されたコマンドを使って未使用のインクルードを見つけてそれらを一時フォルダーに移動しました。
ここで繰り返しました...
mkdir /tmp/includes
brew doctor 2>&1 | grep "/usr/local/include" | awk '{$1=$1;print}' | xargs -I _ mv _ /tmp/includes
スクリプトを実行した後、インクルードファイルの問題はなくなりました。 nb:私はこの問題についてコメントしました ここ 。
私はこの問題を抱えていました、そして 何もうまくいきませんでした 。私はxcode-select --install
を実行し、また/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
をインストールしました。
バックグラウンド
新しいラップトップでApp Storeに問題があったので、Apple Webサイトから XCode BetaインストーラをダウンロードしてApp Storeの外側にXCodeをインストールすることを余儀なくされました。だから私は XCode Betaしかインストールしていなかった。
_ソリューション_
これは(私は思う)、clang
がSDKROOT
ディレクトリ/Applications/Xcode.app/....
を見つけられないようにするためでした。パスにBeta
がない、または XCode Beta単にそれをインストールしないからです知っている)。この問題を解決するには、 XCode Betaを削除し、App Storeの問題を解決してリリース版をインストールする必要がありました。
tldr;
XCode Betaをお持ちの場合は、他の人のために働いている解決策を試す前にすべてを片付けてリリース版をインストールしてみてください。
GitHubのコメント で素晴らしい解決方法と説明が見つかりました。トリック:
make SDKROOT=`xcrun --show-sdk-path` MACOSX_DEPLOYMENT_TARGET=
仕事をしました。