J'utilise Xcode pour construire un ancien code et spécifier SDKROOT=/Developer/SDKs/MacOSX"${Host_VERSION}".sdk/
Je souhaite spécifier SDKROOT pour le dernier SDK fourni pré-installé (?) Sur le système. par exemple. Je suis déjà sur 10.8
et je veux spécifier SDKROOT
avec -syslibroot, mais il n’existe pas de tel SDK dans /Developer/SDKs/
. Devrais-je simplement ignorer syslibroot si SDK_VERSION == Host_VERSION
?
Les versions plus récentes de Xcode contiennent les kits de développement logiciel dans le bundle Xcode.app, par exemple.
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
Vous obtenez la liste des SDK installés ainsi que leur chemin en exécutant
xcodebuild -sdk -version
à partir de la ligne de commande.
Si vous avez installé les "Outils de ligne de commande" (Préférences Xcode -> Téléchargements -> Composants), la compilation sans "-syslibroot" devrait être équivalente à la compilation avec le dernier SDK.
Voir l'aide du package "Outils de ligne de commande":
Le téléchargement de ce paquet installera des copies de la ligne de commande principale outils et en-têtes système dans les dossiers système, y compris LLVM compilateur, éditeur de liens et outils de construction.
Avec xcodebuild -version -sdk macosx10.7 Path
, vous pouvez obtenir le chemin d'accès au SDK OS X 10.7 . Vous pouvez remplacer 10.7 par ${SDK_VERSION}
ou ${Host_VERSION}
en fonction de vos besoins . Je ne connais aucune commande permettant d'obtenir la version de OS X pouvant être utilisée pour obtenir le chemin d'accès au SDK correspondant à la version d'OS X en cours d'exécution.
Remarque: pour que xcodebuild
fonctionne, l'utilisateur doit avoir configuré correctement xcode-select
, par exemple xcode-select -switch /Application/Xcode.app
.
Comme indiqué dans une autre question stackoverflow :
xcrun --sdk macosx --show-sdk-path