构建张量流单元测试的问题



我需要对一些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.alibgtest_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失败。

最新更新