Проблемы со сборкой модульных тестов тензорного потока

Мне нужно запустить тесты на некоторых проходах XLA и использовать bazel test --config=opt --config=cuda //tensorflow/compiler/xla/service сделать то же самое ( отсюда). Сбой сборки со следующим сообщением, намекающим на отсутствующую зависимость Googletest.

/usr/lib/x86_64-linux-gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'

Зависимости libgtest.a а также libgtest_main.a были созданы из источника googletest и переданы компоновщику с помощью --linkopt=/path/to/file,

googletest/googletest/libgtest_main.a(gtest_main.cc.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC

Добавление -DCMAKE_CXX_FLAGS=-fPIC не помогло Как я могу изменить конфигурацию cmake для сборки с -fPIC?

Тензор потока (v1.8) настроен для сборки с помощью локальной версии gcc (5.4), так как системная версия (5.5) не может создать тензор потока. Это будет причиной проблемы?

1 ответ

Связывание с общими библиотеками вместо архивов объектных файлов решило эту проблему, т. Е.

bazel test --linkopt="$GTEST_DIR/libgtest.so" --linkopt="GTEST_DIR/libgtest_main.so"

вместо,

bazel test --linkopt="$GTEST_DIR/libgtest.a" --linkopt="GTEST_DIR/libgtest_main.a"

Это по-прежнему не помогает запускать модульные тесты tenorflow. Есть ошибки сборки в зависимостях модульных тестов, например. сборник //tensorflow/...../absl/base/internal выходит из строя.

Другие вопросы по тегам