GCCの致命的なエラー:stdio.h:そのようなファイルまたはディレクトリはありません


90

GCC 4.9(実験的)を使用してOS X10.9上のCでプログラムをコンパイルしようとしています。何らかの理由で、コンパイル時に次のエラーが発生します。

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

次に、簡単なHelloWorldプログラムを試しました。

#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がヘッダーファイルを探している場所を確認できます。
クリスチャンテルヌス2013年

1
とても便利なコマンド!stdio.hGCCのどの検索パスにもあるようには見えません。
ジュール

2
Mavericksにはベース/ usr / includeがなくなりました。XCode OS 10.9SDKから所定の位置にリンクする必要があります。
ヤンラミン2013年

3
ところで、int mainの最初のパラメータはintであり、int * argcではありません。
p0lAris 2013年

3
@ user2615799その時sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
Yann Ramin

回答:


141

Mac OS X

私もこの問題を抱えていました(Macportsコンパイラで発生しました)。以前のバージョンのXcodeでは、xcode / Preferencesを使用してコマンドラインツールをインストールできましたが、xcode5ではGUIにコマンドラインツールオプションがないため、現在は自動的に含まれていると思いました。次のコマンドを実行してみてください。

xcode-select --install

Ubuntu

(この回答による

sudo apt-get install libc6-dev

アルパインLinux

(このコメントによる

apk add libc-dev

Xcode 6ベータ5を使用している場合、このコマンドは失敗する可能性があります。その場合、あなたはする必要がありますsudo xcode-select -s /Applications/Xcode.app。完了したら、を使用して元に戻しsudo xcode-select -s /Applications/Xcode6-Beta5.appます。
Sjors Provoost 2014

1
ワオ。2017
Xcode8.0

1
アルパインガイドは、アルパインディストリビューションに基づくDockerイメージに非常に
役立ち、必要に応じて

Windowsユーザーへの提案はありますか?私はウィンドウズでこの問題を抱えています
Ratul Hasan

1
まだのCLTのインストール後に問題を抱えているMacOSのユーザーのためのstackoverflow.com/questions/63342521/...
アンキを

46

Mac OS Mojave

受け入れられた回答は機能しなくなります。コマンドを実行すると、xcode-select --install「ソフトウェアアップデート」を使用してアップデートをインストールするように指示されます。

このリンクには、更新されたメソッドがあります。

ターミナルを開いてから:

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

これにより、インストールウィザードが開きます。

2019年12月更新

Mojave 10.15.1にアップデートした後、使用xcode-select --installは意図したとおりに機能するようです。


ヘッダーの再インストールは、Xcode10.2にアップグレードする場合にも機能します。
BojanDimovski19年

macOS_SDK_headers_for_macOS_10.14.pkgを開くと、インストーラーから「このパッケージはこのバージョンのmacOSと互換性がなく、インストールに失敗する可能性があります」という恐ろしい警告が表示されます。私はモハベを持っています。
スティーブシーゲル

@SteveSiegelどのMacOSバージョンを実行していますか?10.15.1にアップグレードしたところ、この回避策を実行する必要がなくなりました。それを反映するために私の答えを更新しました。
Samshel

「Mojave10.15.1への更新」は正しくありません。@SteveSiegelpkgは非推奨になりました。SDKROOTを使用する必要があります。stackoverflow.com/a/63343829/10063119
anki

23

ubuntuユーザー:

sudo apt-get install libc6-dev

gem install json -v '1.8.2'VMへのインストールに問題がある特にRuby開発者


1
面白い。ありがとう。このライブラリは、他のいくつかの問題も解決します。最近、petabyet.com(gccを使用)のベンチマークを実行しようとしているときに遭遇しました。
dhaupin 2016

14
アルパインLinuxで必要だったapk add libc-dev
shadi 2017年

3

私も同じ問題を抱えていました。アプリストアから「XCode:開発ツール」をインストールしたところ、問題は解決しました。

このリンクが役立つと思います:https//itunes.apple.com/us/app/xcode/id497799835?mt = 12&ls = 1

彼のアドバイスはYannRaminの功績によるものです。リンクを使ったより良い解決策があると思いますが、これは簡単で迅速でした。

幸運を!


通常のXcodeだけを参照していますか?または、「XCode:開発ツール」と呼ばれる特別なバージョンはありますか?AppStoreには通常のXcodeしか表示されないためです。確かに、これはこの回答が投稿されてから4年後のことです。
user124384 2017

1

私のケースはまれですが、後でトラブルシューティングを行う人のために、ここに追加します。MakefileにLinuxカーネルモジュールターゲットがあり、stdioを持たないカーネルモジュールと一緒にユーザースペースプログラムをコンパイルしようとしました。別のターゲットにすることで問題は解決しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.