Путь SDKROOT для последнего SDK
Я использую Xcode для создания старого кода и укажите SDKROOT=/Developer/SDKs/MacOSX"${HOST_VERSION}".sdk/
Я хочу указать SDKROOT для последнего SDK, который поставляется с предустановленной (?) системой. например Я уже на 10.8
, и я хочу указать SDKROOT
с -syslibroot, но такого SDK в /Developer/SDKs/
нет. Должен ли я просто игнорировать syslibroot вообще, если SDK_VERSION == HOST_VERSION
?
Ответы
Ответ 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
.
Ответ 3
Как указано в другом вопросе fooobar.com/questions/375828/...:
xcrun --sdk macosx --show-sdk-path
Ответ 4
CommandLineTools устарела, переустановка инструментов командной строки устранила проблему:
xcode-select --install