我需要对一些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 构建?
TensorFlow(v1.8(被配置为由本地构建的版本GCC(5.4(构建,因为系统的版本(5.5(无法构建TensorFlow。这会是问题的原因吗?
链接到共享库而不是目标文件归档解决了这个问题,即
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"
这仍然无助于运行张量流单元测试。单元测试的依赖关系中存在构建错误,例如。编译//tensorflow/...../absl/base/internal
失败。