При попытке использовать настраиваемую цепочку инструментов для создания цели, зависящей от тензорного потока, мои файлы CROSSTOOL и Toolchain BUILD кажутся прекрасными. Однако при построении цели (которая зависит от тензорного потока) bazel ошибки в следующем:
>>>>>> #@org_tensorflow//tensorflow/core:version_lib [action 'Linking external/org_tensorflow/tensorflow/core/libversion_lib.a']
cd blah/blach && \ exec env - \ PWD=/proc/self/cwd \
path/to/linux-gnu-gcc-ar @bazel-out/local_linux-opt/bin/external/external/org_tensorflow/tensorflow/core/libversion_lib.a-2.params
Ошибка заключается в вызове самого "ar", он должен вызываться с содержимым файла, а не с самим файлом.
ERROR: path/to/tensorflow/core/BUILD:1033:1:1 Linking of rule
'@org_tensorflow//tensorflow/core:version_lib' failed: x86_64-unknown-linux-
gnu-gcc-ar failed: error executing command
(cd blah/blach && \ exec env - \ PWD=/proc/self/cwd \
path/to/linux-gnu-gcc-ar @bazel-out/local_linux-
opt/bin/external/external/org_tensorflow/tensorflow/core/libversion_lib.a-
2.params) : com.google.devtools.build.lib.shell.BadExitStatusException:
Process exited with status 1.
path/to/ar: invalid option --'@'
Usage: ar [emulation options] [-]{dmpqrstx}[abcDfilMNoPsSTuvV] [--plugin
<name>] [member-name] [count] archive-file file... etc.
Теперь кошачий
bazel-out/local_linux/opt/bin/external/external/org_tensorflow/tensorflow/core/libversion_lib.a-2.params
Я получаю именно то, что должно быть аргументом для 'ar', то есть я получаю:
rcsD bazel-out/local_linux-opt/bin/external/org_tensorflow/tensorflow/core/libversion_lib.a bazel-out/local_linux-opt/bin/external/org_tensorflow/tensorflow/core/_objs/version_lib/external/org_tensorflow/tensorflow/core/util/version_info.o
Команда, которую следует запустить, выглядит примерно так:
path/to/custom/toolchain/ar $(cat bazel-out/local_linux/opt/bin/external/external/org_tensorflow/tensorflow/core/libversion_lib.a-2.params)
Что мне не хватает? Я использую последнюю версию bazel 0.5.2