web-dev-qa-db-fra.com

La version Xcode doit être spécifiée pour utiliser un Apple CROSSTOOL

J'essaie de créer un serveur tensorflow en utilisant bazel mais j'ai rencontré des erreurs lors de la construction

ERROR:/private/var/tmp/_bazel_Kakadu/3f0c35881c95d2c43f04614911c03a57/external/local_config_cc/BUILD:49:5: in Apple_cc_toolchain rule @local_config_cc//:cc-compiler-darwin_x86_64: Xcode version must be specified to use an Apple CROSSTOOL.

ERROR: Analysis of target '//tensorflow_serving/sources/storage_path:file_system_storage_path_source_proto' failed; build aborted.

J'ai déjà essayé d'utiliser bazel clean et bazel clean --expunge mais cela n'a pas aidé et Bazel ne voit toujours pas mon xcode (je suppose) mais il est complètement installé. Je l'ai même réinstallé pour m'assurer que tout fonctionne bien mais l'erreur n'a pas disparu

Ma version Bazel est

Build label: 0.5.2-homebrew
Build target: bazel-out/darwin_x86_64-opt/bin/src/main/Java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Thu Jul 13 12:29:40 2017 (1499948980)
Build timestamp: 1499948980
Build timestamp as int: 1499948980
KakaduDevs-Mac-mini:serving Kakadu$ 

Le système d'exploitation est MacOS Sierra version 10.12.5

Que dois-je faire pour spécifier la version Xcode dans bazel pour éviter cette erreur? Il semble que l'erreur soit courante mais je n'ai pas trouvé comment faire la construction du bazel. P.S J'essaie d'installer le tensorflow comme il est expliqué ici. https://tensorflow.github.io/serving/setup

32
Ivan Shelonik
bazel clean --expunge 
Sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Sudo xcodebuild -license
bazel clean --expunge 
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
76
user8686787

Il semble que xcode_configure n'identifie pas correctement que vous avez installé xcode. Cela peut parfois se produire si vous installez xcode mais ne l'avez pas encore complètement ouvert (il peut vous demander d'accepter les conditions générales avant d'être pleinement fonctionnel). Si c'est le problème, vous devrez à nouveau bazel clean --expunge Après cela ...

Si cela ne vous aide pas, vous pouvez obtenir des informations de débogage pour identifier ce qui ne va pas, en appelant (après un build échoué):

cat $(bazel info output_base)/external/local_config_xcode/BUILD

Celui-ci devrait contenir quelques commentaires concernant les échecs dans la recherche de vos xcodes installés.

7
Christopher Parsons

J'ai eu le même problème, et comme j'utilise une version bêta de XCode, j'ai dû trouver l'installation dans /Downloads/Xcode-beta.app au lieu.

Soit dit en passant, la solution pour moi était d'ouvrir XCode, d'aller dans les Préférences et de sélectionner l'onglet Emplacements. Le Command Line Tools la liste déroulante était vide, et j'ai dû appuyer dessus et sélectionner une version (Xcode 9.0 dans mon cas). J'ai ensuite couru bazel clean --expunge et a répété le processus de génération sans obtenir l'erreur. J'espère que cela aide quelqu'un.

6
SoMuchNas

Pour moi, c'était un problème de licence pour xcodebuild. Après avoir exécuté bazel clean --expunge J'ai essayé de relancer Bazel et j'ai reçu l'instruction d'exécuter Sudo xcodebuild -license. J'ai exécuté, accepté les termes du contrat de licence, relancez bazel clean --expunge et tout a recommencé à fonctionner. J'espère que cela résoudra certains des cas.

2
mcjoan

Afin de construire objc, Bazel nécessite que vous spécifiiez une version de xcode - cela se fait généralement automatiquement par xcode_configure . Si cela ne fonctionne pas, vous pouvez spécifier manuellement la version de xcode sur la ligne de commande en utilisant l'indicateur --xcode_version.

1
user6637560