编译张量流:未定义的引用`clSetUserEventStatus@OPENCL_1.1'

时间:2017-03-01 16:58:40

标签: tensorflow clang

PS:问题在最后,以下只是可能有用的背景信息。

我正在尝试编译tensorflow,但收到此错误:

bazel-out/host/bin/_solib_local/_U@local_Uconfig_Usycl_S_Ssycl_Csyclrt___Uexternal_Slocal_Uconfig_Usycl_Ssycl_Slib/libComputeCpp.so:
    undefined reference to `clSetUserEventStatus@OPENCL_1.1'

使用" strace"工具,我已经隔离了未能成立的确切陈述:

(
cd /home/rh/.cache/bazel/_bazel_rh/81919f16ea125cb9f08993f06569f022/execroot/tensorflow && \
exec env - PATH=/home/rh/.nvm/versions/node/v6.9.5/bin:/home/rh/perl5/bin:/home/rh/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/rh/bin:/usr/local/java/jdk1.8.0_74/bin:/home/rh/.local/bin:/home/rh/myscripts \
/usr/bin/clang++-3.6 \
-o \
bazel-out/host/bin/tensorflow/python/gen_functional_ops_py_wrappers_cc \
-Lbazel-out/host/bin/_solib_local/_U@local_Uconfig_Usycl_S_Ssycl_Csyclrt___Uexternal_Slocal_Uconfig_Usycl_Ssycl_Slib \
-Wl,-rpath,$ORIGIN/../../_solib_local/_U@local_Uconfig_Usycl_S_Ssycl_Csyclrt___Uexternal_Slocal_Uconfig_Usycl_Ssycl_Slib \
-pthread \
-Wl,-no-as-needed \
-B/usr/bin/ \
-Wl,-no-as-needed \
-Wl,--build-id=md5 \
-Wl,--hash-style=gnu \
-Wl,-S \
-Wl,@bazel-out/host/bin/tensorflow/python/gen_functional_ops_py_wrappers_cc-2.params \
-Wl,--no-undefined
)

strace还确认此命令正在读取/usr/local/computecpp/lib/libComputeCpp.so,其中包含上述clSetUserEventStatus符号。

我通过检查libComputeCpp.so命令的输出验证了clSetUserEventStatus包含nm

nm /usr/local/computecpp/lib/libComputeCpp.so | grep clSetUserEventStatus
>> U clSetUserEventStatus@@OPENCL_1.1

所以这是我的问题:clang(和/或它的链接器)正在读取包含它抱怨的符号的文件......为什么会这样?"遗失了什么"并抱怨它未定义?

如何让这个编译工作?

0 个答案:

没有答案