最新SDK的SDKROOT路径

Pno*_*tNP 19 macos xcode ld xcode4.5

我正在使用Xcode构建旧代码并指定 SDKROOT=/Developer/SDKs/MacOSX"${HOST_VERSION}".sdk/

我想为系统上预安装的最新SDK指定SDKROOT(?).例如我已经在10.8,我想SDKROOT用-syslibroot 指定,但是没有这样的SDK /Developer/SDKs/.我应该完全忽略syslibroot SDK_VERSION == HOST_VERSION吗?

Mar*_*n R 30

较新的Xcode版本在Xcode.app包中包含SDK,例如

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
Run Code Online (Sandbox Code Playgroud)

您可以通过运行获得已安装的SDK列表及其路径

xcodebuild -sdk -version
Run Code Online (Sandbox Code Playgroud)

从命令行.

如果您已经安装了"命令行工具"(Xcode首选项 - >下载 - >组件),那么在没有"-syslibroot"的情况下进行编译应该相当于针对最新的SDK进行编译.

请参阅"命令行工具"包的帮助:

下载此软件包将安装核心命令行工具和系统头文件的副本到系统文件夹中,包括LLVM编译器,链接器和构建工具.


Sri*_*ali 8

如另一个stackoverflow问题所述

xcrun --sdk macosx --show-sdk-path
Run Code Online (Sandbox Code Playgroud)


Sve*_*ven 6

随着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.