【发布时间】:2018-02-06 16:28:02
【问题描述】:
这是我发布的 tensorflow 问题的链接。
https://github.com/tensorflow/tensorflow/issues/16795
我尝试在 android arm64-v8a 上编译 tensorflow C++ API,但我被卡住了。这是我尝试编译的代码:
bazel build -c opt --cxxopt='--std=c++11' //tensorflow:libtensorflow_cc.so --config=android_arm64 --cpu=arm64-v8a --fat_apk_cpu=arm64-v8a --verbose_failures
I get that error:
1 warning generated.
ERROR: /home/xavier/Bureau/developpement/NeuralNetwork/tensorflow/tensorflow/core/kernels/BUILD:4276:1: C++ compilation of rule '//tensorflow/core/kernels:random_poisson_op' failed (Exit 1): clang failed: error executing command
(cd /home/xavier/.cache/bazel/_bazel_xavier/ef54af8645dec4f38c438d8e1c779747/execroot/org_tensorflow && \
exec env - \
LD_LIBRARY_PATH=/opt/ros/kinetic/lib:/usr/local/lib: \
PATH=/opt/ros/kinetic/bin:/home/xavier/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/aarch64-linux-android/bin/ld:/home/xavier/bin:/home/xavier/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/xavier/Android/Sdk/platform-tools:/home/xavier/android-ndk-r14b:/home/xavier/Bureau/developpement/androidscreencast/bin:/home/xavier/Bureau/developpement/androidscreencast:/home/xavier/Bureau/developpement/gerrit_tools:/home/xavier/android-studio/bin:/home/xavier/Bureau/developpement:/home/xavier/dev/common.tools/bin:/home/xavier/dev/gcc-arm-none-eabi-6-2017-q2-update/bin:/home/xavier/dev/dump_Cyril:/home/xavier/opt/gnu-mcu-eclipse/openocd/0.10.0-3-20170826-1813-dev/bin \
PWD=/proc/self/cwd \
PYTHON_BIN_PATH=/usr/bin/python \
PYTHON_LIB_PATH=/usr/local/lib/python2.7/dist-packages \
TF_NEED_CUDA=0 \
TF_NEED_OPENCL_SYCL=0 \
external/androidndk/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -gcc-toolchain external/androidndk/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64 -target aarch64-none-linux-android -ffunction-sections -funwind-tables -fstack-protector-strong -fpic -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -O2 -g -DNDEBUG -DGEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK '--std=c++11' -MD -MF bazel-out/arm64-v8a-opt/bin/tensorflow/core/kernels/_objs/random_poisson_op/tensorflow/core/kernels/random_poisson_op.d '-frandom-seed=bazel-out/arm64-v8a-opt/bin/tensorflow/core/kernels/_objs/random_poisson_op/tensorflow/core/kernels/random_poisson_op.o' -DEIGEN_MPL2_ONLY '-DS_IREAD=S_IRUSR' '-DS_IWRITE=S_IWUSR' '-DS_IEXEC=S_IXUSR' -DTF_USE_SNAPPY -iquote . -iquote bazel-out/arm64-v8a-opt/genfiles -iquote external/bazel_tools -iquote bazel-out/arm64-v8a-opt/genfiles/external/bazel_tools -iquote external/eigen_archive -iquote bazel-out/arm64-v8a-opt/genfiles/external/eigen_archive -iquote external/local_config_sycl -iquote bazel-out/arm64-v8a-opt/genfiles/external/local_config_sycl -iquote external/nsync -iquote bazel-out/arm64-v8a-opt/genfiles/external/nsync -iquote external/gif_archive -iquote bazel-out/arm64-v8a-opt/genfiles/external/gif_archive -iquote external/jpeg -iquote bazel-out/arm64-v8a-opt/genfiles/external/jpeg -iquote external/protobuf_archive -iquote bazel-out/arm64-v8a-opt/genfiles/external/protobuf_archive -iquote external/com_googlesource_code_re2 -iquote bazel-out/arm64-v8a-opt/genfiles/external/com_googlesource_code_re2 -iquote external/farmhash_archive -iquote bazel-out/arm64-v8a-opt/genfiles/external/farmhash_archive -iquote external/fft2d -iquote bazel-out/arm64-v8a-opt/genfiles/external/fft2d -iquote external/highwayhash -iquote bazel-out/arm64-v8a-opt/genfiles/external/highwayhash -iquote external/png_archive -iquote bazel-out/arm64-v8a-opt/genfiles/external/png_archive -iquote external/zlib_archive -iquote bazel-out/arm64-v8a-opt/genfiles/external/zlib_archive -isystem external/bazel_tools/tools/cpp/gcc3 -isystem external/eigen_archive -isystem bazel-out/arm64-v8a-opt/genfiles/external/eigen_archive -isystem external/nsync/public -isystem bazel-out/arm64-v8a-opt/genfiles/external/nsync/public -isystem external/gif_archive/lib -isystem bazel-out/arm64-v8a-opt/genfiles/external/gif_archive/lib -isystem external/protobuf_archive/src -isystem bazel-out/arm64-v8a-opt/genfiles/external/protobuf_archive/src -isystem external/farmhash_archive/src -isystem bazel-out/arm64-v8a-opt/genfiles/external/farmhash_archive/src -isystem external/png_archive -isystem bazel-out/arm64-v8a-opt/genfiles/external/png_archive -isystem external/zlib_archive -isystem bazel-out/arm64-v8a-opt/genfiles/external/zlib_archive -DEIGEN_AVOID_STL_ARRAY -Iexternal/gemmlowp -Wno-sign-compare -fno-exceptions '-ftemplate-depth=900' '-std=c++11' -DTF_LEAN_BINARY -Wno-narrowing -fomit-frame-pointer -O2 '--sysroot=external/androidndk/ndk/platforms/android-24/arch-arm64' -isystem external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include -isystem external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/backward -c tensorflow/core/kernels/random_poisson_op.cc -o bazel-out/arm64-v8a-opt/bin/tensorflow/core/kernels/_objs/random_poisson_op/tensorflow/core/kernels/random_poisson_op.o)
In file included from tensorflow/core/kernels/random_poisson_op.cc:27:
In file included from ./tensorflow/core/framework/op_kernel.h:23:
In file included from ./tensorflow/core/framework/allocator.h:23:
In file included from ./tensorflow/core/framework/numeric_types.h:21:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:31:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/../SpecialFunctions:46:
external/eigen_archive/unsupported/Eigen/CXX11/../src/SpecialFunctions/SpecialFunctionsImpl.h:108:5: error: static_assert failed "THIS_TYPE_IS_NOT_SUPPORTED"
EIGEN_STATIC_ASSERT((internal::is_same<Scalar, Scalar>::value == false),
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/eigen_archive/unsupported/Eigen/CXX11/../../../Eigen/src/Core/util/StaticAssert.h:32:40: note: expanded from macro 'EIGEN_STATIC_ASSERT'
#define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
^ ~
external/eigen_archive/unsupported/Eigen/CXX11/../src/SpecialFunctions/SpecialFunctionsImpl.h:1509:47: note: in instantiation of member function 'Eigen::internal::lgamma_impl<double>::run' requested here
return EIGEN_MATHFUNC_IMPL(lgamma, Scalar)::run(x);
^
tensorflow/core/kernels/random_poisson_op.cc:234:58: note: in instantiation of function template specialization 'Eigen::numext::lgamma<double>' requested here
CT t = -rate + k * log_rate - Eigen::numext::lgamma(k + 1);
^
tensorflow/core/kernels/random_poisson_op.cc:308:5: note: in instantiation of member function 'tensorflow::functor::PoissonFunctor<Eigen::ThreadPoolDevice, float, float>::operator()' requested here
functor::PoissonFunctor<CPUDevice, T, U>()(
^
tensorflow/core/kernels/random_poisson_op.cc:284:12: note: in instantiation of member function 'tensorflow::(anonymous namespace)::RandomPoissonOp<float, float>::Compute' requested here
explicit RandomPoissonOp(OpKernelConstruction* context) : OpKernel(context) {
^
tensorflow/core/kernels/random_poisson_op.cc:328:15: note: in instantiation of member function 'tensorflow::(anonymous namespace)::RandomPoissonOp<float, float>::RandomPoissonOp' requested here
TF_CALL_float(REGISTER);
^
1 error generated.
Target //tensorflow:libtensorflow_cc.so failed to build
INFO: Elapsed time: 1712.148s, Critical Path: 61.59s
FAILED: Build did NOT complete successfully
是否可以编译tensorflow C++ API?
我使用 NDK 14b
【问题讨论】:
-
你的 NDK 版本是多少?
-
你好@Adam,我使用 NDK 14b
标签: c++ tensorflow bazel