Путь 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
Другие вопросы по тегам