Mac OS XはUnixベースのシステムであることを知っています。また、stdio.hなどのC標準ライブラリは/usr/local/include
または/usr/include
。ただし、このディレクトリにはライブラリはありません。ターミナルを使用してこのディレクトリを検索し、find ./ -iname "stdio.h"
、しかし何も出てこない。しかし、奇妙なことに、gcc -test.c -o test
コマンドが機能します。どうやってそうなった?私のCライブラリがどこにあるか知りたい。 p.s私もXcodeを使用しています。このアプリケーションに関連していますか?助けて!そして、AWS EC2 Linuxサーバーがあり、上記で参照した両方のライブラリがあります。
Xcodeを持っているが、オプションのコマンドラインツールパッケージをインストールしていない場合、標準のインクルードとライブラリが通常の場所に見つからない可能性があります。試してください:
$ find /Applications/Xcode.app -name stdio.h
おそらく次のようなものが表示されます:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/sys/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/sys/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdio.h
ただし、非Xcode(コマンドライン)プログラミングを実行する予定の場合は、コマンドラインツールパッケージをインストールするが必要な場合があります。 /usr/include
および/usr/lib
に通常のヘッダーとライブラリが表示されます。
コマンドラインツールがインストールされていない場合は、次を実行できます。
xcode-select --install
ライセンス契約などに同意するためのダイアログボックスが開きます。
(これは上記の応答から欠落していました。)
/usr/include
のシンボリックリンクを作成/更新して、ライブラリを検出します。
Sudo ln -sf /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include /usr/include
上記のパスは、stdio.hを検索して見つけることができます。
find /Applications/Xcode.app -path '*/usr/include/stdio.h'
XCode/MacOS SDKの更新ごとにこれを行う必要がありますが、今日はXCode 7のアップグレードに直面しています。
コマンドラインツールをインストールすると、xcode-select
で再インストールできないため、Mac AppStoreのアップグレードでパスが更新されない場合があります。
XCodeをアンインストールして再インストールしてからxcode-select --install
を実行すると、パスが更新される場合がありますが、やり過ぎです。
いくつかの投稿ではxcode-select --switch /Application/Xcode.app
についても言及していますが、私はあまり運がありませんでした。
根本的な理由は/ usr/includeフォルダーがないため、コマンドラインツールをインストールしても自動的に追加されない場合があります。
パッケージをインストールします
/ライブラリ/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
私のラップトップでは、/usr/include/stdio.h
および/usr/include/sys/stdio.h
および/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/stdio.h
。
フォルダー内
Applications/Xcode/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include
または類似。