Путь SDKROOT для последнего SDK - программирование
Подтвердить что ты не робот

Путь SDKROOT для последнего SDK

Я использую Xcode для создания старого кода и укажите SDKROOT=/Developer/SDKs/MacOSX"${HOST_VERSION}".sdk/

Я хочу указать SDKROOT для последнего SDK, который поставляется с предустановленной (?) системой. например Я уже на 10.8, и я хочу указать SDKROOT с -syslibroot, но такого SDK в /Developer/SDKs/ нет. Должен ли я просто игнорировать syslibroot вообще, если SDK_VERSION == HOST_VERSION?

4b9b3361

Ответ 1

Более новые версии 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 компилятор, компоновщик и инструменты сборки.

Ответ 2

С помощью xcodebuild -version -sdk macosx10.7 Path вы можете получить Путь к OS X 10.7 SDK. Вы можете заменить 10.7 на ${SDK_VERSION} или ${HOST_VERSION} в зависимости от ваших потребностей. Я не знаю никакой команды для получения версии OS X, которую можно было бы использовать для получения Пути к SDK, соответствующего текущей версии OS X.

Примечание: для работы xcodebuild пользователь должен правильно настроить xcode-select, например xcode-select -switch /Application/Xcode.app.

Ответ 4

CommandLineTools устарела, переустановка инструментов командной строки устранила проблему:

xcode-select --install