最新 SDK 的 SDKROOT 路径
Posted
技术标签:
【中文标题】最新 SDK 的 SDKROOT 路径【英文标题】:SDKROOT path for latest SDK 【发布时间】:2012-12-07 12:49:52 【问题描述】:我正在使用 Xcode 构建旧代码并指定 SDKROOT=/Developer/SDKs/MacOSX"$HOST_VERSION".sdk/
我想为系统上预装 (?) 的最新 SDK 指定 SDKROOT。例如我已经在10.8
上,我想用-syslibroot 指定SDKROOT
,但/Developer/SDKs/
中没有这样的SDK。如果SDK_VERSION == HOST_VERSION
,我应该完全忽略 syslibroot 吗?
【问题讨论】:
【参考方案1】:CommandLineTools 已过时,重新安装命令行工具解决了这个问题:
xcode-select --install
【讨论】:
我不太明白为什么这被否决了。xcode-select --install
通常被证明是正确的答案。【参考方案2】:
较新的 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 编译器、链接器和构建工具。
【讨论】:
【参考方案3】:如另一个*** question中所述:
xcrun --sdk macosx --show-sdk-path
【讨论】:
【参考方案4】:使用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
。
【讨论】:
以上是关于最新 SDK 的 SDKROOT 路径的主要内容,如果未能解决你的问题,请参考以下文章