我不会在Ubuntu 16.04上使用CUDA构建带有语法的Tensorflow . 我在这个系统上没有CUDA就成功构建了它 .

最有可能的错误源于配置 . 使用CUDA构建张量流的bazel使用链接器选项-pie为共享库生成链接器命令,以生成具有位置无关代码的可执行文件 . 这会导致错误"undefined reference to `main'" .

/home/patrick/.cache/bazel/_bazel_patrick/5b9c9cf56f3e0138be05b0752b134bcb/external/com_google_absl/absl/base/BUILD.bazel:28:1: Linking of rule '@com_google_absl//absl/base:spinlock_wait' failed (Exit 1): 

    crosstool_wrapper_driver_is_not_gcc failed: error executing command 

  `(cd /home/patrick/.cache/bazel/_bazel_patrick/5b9c9cf56f3e0138be05b0752b134bcb `/execroot/__main__ && exec env - \
CUDA_TOOLKIT_PATH=/usr/local/cuda \
CUDNN_INSTALL_PATH=/usr/local/cuda \
GCC_HOST_COMPILER_PATH=/usr/bin/gcc \
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64:/usr/local/cuda-9.0/nvvm/lib64 \
NCCL_INSTALL_PATH=/usr \ PATH=/home/patrick/bin:/home/patrick/.local/bin:/usr/local/cuda/bin:/usr/bin:/bin \
    PWD=/proc/self/cwd \
    PYTHON_BIN_PATH=/usr/bin/python \
    PYTHON_LIB_PATH=/usr/local/lib/python2.7/dist-packages \
    TF_CUDA_CLANG=0 \
    TF_CUDA_COMPUTE_CAPABILITIES=6.1 \
    TF_CUDA_VERSION=9.0 \
    TF_CUDNN_VERSION=7 \
    TF_NCCL_VERSION=2 \
    TF_NEED_CUDA=1 \
    TF_NEED_OPENCL_SYCL=0 \
  external/local_config_cuda/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc -shared -o bazel-out/k8-opt/bin/external/com_google_absl/absl/base/libspinlock_wait.so -Wl,-no-as-needed -B/usr/bin/ -pie -Wl,-z,relro,-z,now -no-canonical-prefixes -pass-exit-codes '-Wl,--build-id=md5' '-Wl,--hash-style=gnu' -Wl,--gc-sections -Wl,@bazel-out/k8-opt/bin/external/com_google_absl/absl/base/libspinlock_wait.so-2.params)
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status

删除选项-pie时,此链接命令会成功 . 感谢帮助找到编辑Bazel使用的链接器标志的方法,或者获取我遇到类似问题的用户所做的配置错误的提示 . 我不认为发布我所做的配置步骤会导致其他建议,而不是我已在其他帖子上阅读的建议 . 构建过程对我来说太不稳定了 . 我已经看过CROSSTOOL和BUILD文件中的定义了 . 我没有编辑它们,它们看起来很好(-pie仅用于链接可执行文件) .

我合作

  • Bazel 0.15.2

  • Tensorflow 1.8.0

  • Ubuntu 16.04

  • gcc 5.4

  • CUDA 9.0

  • CUDNN 7.1

  • NCCL 2.1