system:ubuntu 16.04 bazel:0.4.5 tensorflow:cpu version r1.0 gcc version:(Ubuntu 5.4.0-6ubuntu1~16.04.4)5.4.0 20160609
bazel build -c opt //tensorflow/contrib/android:libtensorflow_inference.so \
--crosstool_top = // external:android / crosstool \ --host_crosstool_top = @ bazel_tools // tools / cpp:toolchain \ --cpu = armeabi-v7a
错误是:
tensorflow/core/kernels/BUILD:3749:1: C++ compilation of rule '//tensorflow/core/kernels:android_tensorflow_kernels' failed: Process exited with status 1 [sandboxed].
tensorflow/core/kernels/split_v_op.cc:212:28: error: non-constant-expression cannot be narrowed from type 'value_type' (aka 'long long') to 'int' in initializer list [-Wc++11-narrowing]
prefix_dim_size, split_sizes_vec[i], suffix_dim_size};
^~~~~~~~~~~~~~~~~~
tensorflow/core/kernels/split_v_op.cc:172:12: note: in instantiation of member function 'tensorflow::SplitVOpCPU<int, long long>::Compute' requested here
explicit SplitVOpCPU(OpKernelConstruction* c) : Base(c) {}
^
tensorflow/core/kernels/split_v_op.cc:355:19: note: in instantiation of member function 'tensorflow::SplitVOpCPU<int, long long>::SplitVOpCPU' requested here
TF_CALL_ALL_TYPES(REGISTER_SPLIT_LEN);
^
tensorflow/core/kernels/split_v_op.cc:212:28: note: insert an explicit cast to silence this issue
prefix_dim_size, split_sizes_vec[i], suffix_dim_size};
^~~~~~~~~~~~~~~~~~
static_cast<int>( )
tensorflow/core/kernels/split_v_op.cc:212:28: error: non-constant-expression cannot be narrowed from type 'value_type' (aka 'long long') to 'int' in initializer list [-Wc++11-narrowing]
prefix_dim_size, split_sizes_vec[i], suffix_dim_size};
^~~~~~~~~~~~~~~~~~
tensorflow/core/kernels/split_v_op.cc:172:12: note: in instantiation of member function 'tensorflow::SplitVOpCPU<float, long long>::Compute' requested here
explicit SplitVOpCPU(OpKernelConstruction* c) : Base(c) {}
^
tensorflow/core/kernels/split_v_op.cc:355:19: note: in instantiation of member function 'tensorflow::SplitVOpCPU<float, long long>::SplitVOpCPU' requested here
TF_CALL_ALL_TYPES(REGISTER_SPLIT_LEN);
^
tensorflow/core/kernels/split_v_op.cc:212:28: note: insert an explicit cast to silence this issue
prefix_dim_size, split_sizes_vec[i], suffix_dim_size};
^~~~~~~~~~~~~~~~~~
static_cast<int>( )
tensorflow/core/kernels/split_v_op.cc:212:28: error: non-constant-expression cannot be narrowed from type 'value_type' (aka 'long long') to 'int' in initializer list [-Wc++11-narrowing]
prefix_dim_size, split_sizes_vec[i], suffix_dim_size};
^~~~~~~~~~~~~~~~~~
tensorflow/core/kernels/split_v_op.cc:172:12: note: in instantiation of member function 'tensorflow::SplitVOpCPU<tensorflow::bfloat16, long long>::Compute' requested here
explicit SplitVOpCPU(OpKernelConstruction* c) : Base(c) {}
^
tensorflow/core/kernels/split_v_op.cc:356:1: note: in instantiation of member function 'tensorflow::SplitVOpCPU<tensorflow::bfloat16, long long>::SplitVOpCPU' requested here
REGISTER_SPLIT_LEN(bfloat16);
^
tensorflow/core/kernels/split_v_op.cc:353:3: note: expanded from macro 'REGISTER_SPLIT_LEN'
REGISTER_SPLIT(type, int64);
^
tensorflow/core/kernels/split_v_op.cc:349:27: note: expanded from macro 'REGISTER_SPLIT'
SplitVOpCPU<type, len_type>);
^
tensorflow/core/kernels/split_v_op.cc:212:28: note: insert an explicit cast to silence this issue
prefix_dim_size, split_sizes_vec[i], suffix_dim_size};
^~~~~~~~~~~~~~~~~~
static_cast<int>( )
3 errors generated.
Use --strategy=CppCompile=standalone to disable sandboxing for the failing actions.
Target //tensorflow/contrib/android:libtensorflow_inference.so failed to build
Use --verbose_failures to see the command lines of failed build steps.
1 回答
这些错误来自Android NDK r13中从gcc切换到Clang . 使用Bazel进行建筑时,为了获得最佳效果,请暂时使用NDK r12b .