web-dev-qa-db-ja.com

最新のSDKのSDKROOTパス

Xcodeを使用して古いコードを作成し、SDKROOT=/Developer/SDKs/MacOSX"${Host_VERSION}".sdk/を指定しています

システムにプリインストール(?)されている最新のSDKにSDKROOTを指定したい。例えば私はすでに10.8を使用しており、SDKROOTを-syslibrootで指定したいのですが、/Developer/SDKs/にはそのようなSDKはありません。 SDK_VERSION == Host_VERSIONの場合、syslibrootを完全に無視する必要がありますか?

19
PnotNP

新しいXcodeバージョンには、Xcode.appバンドル内にSDKがあります。

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk

次のコマンドを実行して、インストールされているSDKのリストとそのパスを取得します

xcodebuild -sdk -version

コマンドラインから。

「コマンドラインツール」(Xcode設定->ダウンロード->コンポーネント)をインストールした場合、「-syslibroot」なしでコンパイルすることは、最新のSDKに対してコンパイルすることと同じです。

「コマンドラインツール」パッケージのヘルプを参照してください。

このパッケージをダウンロードすると、コアコマンドラインツールとシステムヘッダーのコピーが、LLVMコンパイラ、リンカー、ビルドツールなどのシステムフォルダーにインストールされます。

30
Martin R

xcodebuild -version -sdk macosx10.7 Pathを使用すると、OS X 10.7 SDKへのパスを取得できます。必要に応じて、10.7を${SDK_VERSION}または${Host_VERSION}に置き換えることができます。 OS Xのバージョンを取得するコマンドがないことを知っています。これは、現在実行中のOS Xのバージョンと一致するSDKへのパスを取得するために使用できます。

注:xcodebuildが機能するためには、ユーザーはxcode-selectを正しく構成する必要があります(例:xcode-select -switch /Application/Xcode.app)。

6
Sven

別の stackoverflowの質問 で述べたように:

xcrun --sdk macosx --show-sdk-path
3
Sriram Murali