47 votes

La version de Xcode doit être spécifiée pour utiliser un CROSSTOOL d'Apple.

J'essaie de construire tensorflow-serving en utilisant bazel mais j'ai rencontré des erreurs pendant 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 y bazel clean --expunge mais cela n'a pas aidé et Bazel ne voit toujours pas mon xcode (je suppose) alors qu'il est complètement installé. J'ai même réinstallé le code pour m'assurer que tout fonctionne correctement 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 de Xcode dans bazel pour éviter cette erreur ? Il semble que l'erreur soit commune mais je n'ai pas trouvé comment faire pour que le bazel soit construit. P.S. J'essaie d'installer tensorflow-serving de la manière expliquée ici. https://tensorflow.github.io/serving/setup

112voto

user8686787 Points 716
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

0 votes

Si vous avez un problème similaire avec d'autres paquets comme tensorflow, répétez les 4 premières lignes et construisez le paquet dont vous avez besoin à la place de la ligne 5.

10voto

SoMuchNas Points 71

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 à la place.

Par ailleurs, la solution pour moi a été d'ouvrir XCode, d'aller dans les Préférences et de sélectionner l'onglet Emplacements. Le site Command Line Tools était vide, et j'ai dû appuyer dessus et sélectionner une version (Xcode 9.0 dans mon cas). J'ai ensuite exécuté bazel clean --expunge et a répété le processus de construction sans obtenir l'erreur. J'espère que cela aidera quelqu'un.

1 votes

C'est la bonne réponse (ou plutôt la pièce manquante du puzzle) pour les personnes qui utilisent CommandLineTools . Merci !

7voto

On dirait que xcode_configure n'identifie pas correctement que vous avez installé xcode. Cela peut parfois arriver si vous installez xcode mais que vous ne l'avez pas encore complètement ouvert (il peut vous demander d'accepter les termes et conditions avant d'être pleinement fonctionnel). Si c'est le problème, vous devrez bazel clean --expunge encore une fois après ça...

Si cela n'aide pas, vous pouvez obtenir des informations de débogage pour identifier ce qui a mal tourné, en invoquant (après un échec de la construction) :

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

Il devrait contenir des commentaires relatifs à des échecs dans la recherche de vos xcodes installés.

0 votes

J'ai accepté tous les termes et conditions, j'ai même essayé avec un projet Xcode ouvert mais toujours la même erreur. Il semble que je doive trouver comment le faire manuellement, merci pour votre aide. C'est ce que j'ai obtenu après avoir utilisé la ligne que vous avez écrite xcode_config(name = 'host_xcodes') # Error : Running xcodebuild -version failed, return code 72, stderr : xcrun : error : unable to find utility "xcodebuild", not a developer tool or in PATH , stdout : KakaduDevs-Mac-mini:serving Kakadu$ (en anglais)

3voto

mcjoan Points 21

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 de lancer le programme. sudo xcodebuild -license . J'ai exécuté, accepté les termes de la licence, exécuté à nouveau bazel clean --expunge et tout a recommencé à fonctionner. J'espère que cela résoudra certains des cas.

0 votes

Semble comme une explication de la réponse la plus cotée.

1voto

user6637560 Points 11

Afin de construire objc, Bazel requiert que vous spécifiez une version de xcode - ceci est généralement fait 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'option --xcode_version.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X