Windows编译TensorFlow1.14源码修改Bazel输出目录报错求助
解决Bazel修改输出目录时报错的问题
你遇到的报错核心原因是**--output_user_root是Bazel的全局参数,必须放在build子命令之前**,而不是像你之前那样放在build目标的后面,这才导致Bazel识别不了这个选项。
下面给你两种可行的解决方式:
方式1:命令行直接指定全局参数
把--output_user_root放在bazel和build之间,也就是整个命令的最前面部分,示例命令如下:
bazel --output_user_root=E:/build/tensorflow build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
注意:Windows路径推荐用斜杠
/或者双反斜杠\\,避免单斜杠带来的转义问题。
方式2:通过环境变量设置(更省心)
如果需要多次执行编译命令,可以先设置环境变量来指定输出目录,这样不用每次都加参数:
- 在命令行中临时设置(仅当前窗口有效):
set BAZEL_OUTPUT_USER_ROOT=E:\build\tensorflow
- 然后直接执行你的编译命令即可:
bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
要是想永久生效,可以在Windows的「系统属性-高级-环境变量」里添加BAZEL_OUTPUT_USER_ROOT变量,值设为你的目标路径。
额外补充:Bazel的全局参数(比如--output_user_root、--verbose_failures等)都需要放在子命令(build、test、run)的前面,放在后面会被当成构建目标的一部分,自然会报“无法识别的选项”错误。
内容的提问来源于stack exchange,提问作者No_Name
相关产品推荐
相关产品推荐

