when i use bazel to bulid libtensorflow_inference.so

ⅰ亾dé卋堺 提交于 2020-01-25 22:05:15

问题


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

the error is:

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:


These errors comes from the switch from gcc to Clang in Android NDK r13. For best results when building with Bazel use NDK r12b for the time being.



来源:https://stackoverflow.com/questions/43541845/when-i-use-bazel-to-bulid-libtensorflow-inference-so

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!