Путь SDKROOT для последней версии SDK
Я использую Xcode, чтобы построить старый код и указать SDKROOT=/Developer/SDKs/MacOSX"${HOST_VERSION}".sdk/
Я хочу указать SDKROOT для последней версии SDK, которая предустановлена (?) В системе. например, я нахожусь на 10.8
уже и хочу уточнить SDKROOT
с -syslibroot, но в SDK такого нет /Developer/SDKs/
, Должен ли я просто игнорировать syslibroot, если SDK_VERSION == HOST_VERSION
?
3 ответа
Более новые версии Xcode содержат SDK внутри пакета Xcode.app, например
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
Вы получаете список установленных SDK вместе с их путем, запустив
xcodebuild -sdk -version
из командной строки.
Если вы установили "Инструменты командной строки" (Настройки XCode -> Загрузки -> Компоненты), то компиляция без "-syslibroot" должна быть эквивалентна компиляции с последним SDK.
См. Справку к пакету "Инструменты командной строки":
Загрузка этого пакета приведет к установке копий основных инструментов командной строки и системных заголовков в системные папки, включая компилятор LLVM, компоновщик и инструменты сборки.
Как указано в другом вопросе stackru:
xcrun --sdk macosx --show-sdk-path
С xcodebuild -version -sdk macosx10.7 Path
Вы можете получить Путь к OS X 10.7 SDK. Вы можете заменить 10,7 на ${SDK_VERSION}
или же ${HOST_VERSION}
в зависимости от ваших потребностей. Я не знаю ни одной команды для получения версии OS X, которую можно было бы использовать для получения Path to SDK, соответствующего версии OS X, работающей в настоящее время.
Примечание: для xcodebuild
для работы пользователь должен настроить xcode-select
правильно, например xcode-select -switch /Application/Xcode.app
,
CommandLineTools устарел, переустановка инструментов командной строки устранила проблему:
xcode-select --install