AndroidTensorFlowMachineLearningExample icon indicating copy to clipboard operation
AndroidTensorFlowMachineLearningExample copied to clipboard

error creating so file

Open eliayakoumi opened this issue 7 years ago • 0 comments

i have followed the procedure you described to create the so file. i modified the workspace file and added the last 2 parts so thew workspace became as follows

workspace(name = "org_tensorflow")

http_archive( name = "io_bazel_rules_closure", sha256 = "a38539c5b5c358548e75b44141b4ab637bba7c4dc02b46b1f62a96d6433f56ae", strip_prefix = "rules_closure-dbb96841cc0a5fb2664c37822803b06dab20c7d1", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_closure/archive/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz", "https://github.com/bazelbuild/rules_closure/archive/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz", # 2018-04-13 ], )

load("@io_bazel_rules_closure//closure:defs.bzl", "closure_repositories")

closure_repositories()

We must check the bazel version before trying to parse any other BUILD

files, in case the parsing of those build files depends on the bazel

version we require here.

load("//tensorflow:version_check.bzl", "check_bazel_version_at_least") check_bazel_version_at_least("0.10.0")

load("//tensorflow:workspace.bzl", "tf_workspace")

load("//third_party/android:android_configure.bzl", "android_configure") android_configure(name="local_config_android") load("@local_config_android//:android.bzl", "android_workspace") android_workspace()

Please add all new TensorFlow dependencies in workspace.bzl.

tf_workspace()

new_http_archive( name = "inception_v1", build_file = "models.BUILD", sha256 = "7efe12a8363f09bc24d7b7a450304a15655a57a7751929b2c1593a71183bb105", urls = [ "http://storage.googleapis.com/download.tensorflow.org/models/inception_v1.zip", "http://download.tensorflow.org/models/inception_v1.zip", ], )

new_http_archive( name = "mobile_ssd", build_file = "models.BUILD", sha256 = "bddd81ea5c80a97adfac1c9f770e6f55cbafd7cce4d3bbe15fbeb041e6b8f3e8", urls = [ "http://storage.googleapis.com/download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_android_export.zip", "http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_android_export.zip", ], )

new_http_archive( name = "mobile_multibox", build_file = "models.BUILD", sha256 = "859edcddf84dddb974c36c36cfc1f74555148e9c9213dedacf1d6b613ad52b96", urls = [ "http://storage.googleapis.com/download.tensorflow.org/models/mobile_multibox_v1a.zip", "http://download.tensorflow.org/models/mobile_multibox_v1a.zip", ], )

new_http_archive( name = "stylize", build_file = "models.BUILD", sha256 = "3d374a730aef330424a356a8d4f04d8a54277c425e274ecb7d9c83aa912c6bfa", urls = [ "http://storage.googleapis.com/download.tensorflow.org/models/stylize_v1.zip", "http://download.tensorflow.org/models/stylize_v1.zip", ], )

new_http_archive( name = "speech_commands", build_file = "models.BUILD", sha256 = "c3ec4fea3158eb111f1d932336351edfe8bd515bb6e87aad4f25dbad0a600d0c", urls = [ "http://storage.googleapis.com/download.tensorflow.org/models/speech_commands_v0.01.zip", "http://download.tensorflow.org/models/speech_commands_v0.01.zip", ], )

android_sdk_repository( name = "androidsdk", api_level = 23, build_tools_version = "25.0.1", # Replace with path to Android SDK on your system path = "/opt/Android/Sdk/", ) android_ndk_repository( name="androidndk", path="/home/user/Desktop/android-ndk-r13b/", api_level=14)

when i ran the bazel command 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 i get the following error:

ERROR: /home/user/tensorflow/tensorflow/core/BUILD:2306:1: C++ compilation of rule '//tensorflow/core:protos_all_proto_cc_impl' failed (Exit 1) In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.cc:4: In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.h:9: In file included from external/protobuf_archive/src/google/protobuf/stubs/common.h:52: In file included from external/protobuf_archive/src/google/protobuf/stubs/mutex.h:33: In file included from external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/mutex:35: external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options. #error This file requires compiler and library support for the
^ In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.cc:4: In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.h:9: In file included from external/protobuf_archive/src/google/protobuf/stubs/common.h:52: external/protobuf_archive/src/google/protobuf/stubs/mutex.h:58:8: error: no type named 'mutex' in namespace 'std' std::mutex mu_;

In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.cc:4:
In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.h:9:
In file included from external/protobuf_archive/src/google/protobuf/stubs/common.h:53:
external/protobuf_archive/src/google/protobuf/stubs/callback.h:346:25: error: no type named 'remove_reference' in namespace 'std'
typedef typename std::remove_reference<T>::type base_type;
        ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:346:41: error: expected member name or ';' after declaration specifiers
typedef typename std::remove_reference<T>::type base_type;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:347:17: error: unknown type name 'base_type'
typedef const base_type& type;
              ^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:401:17: error: no type named 'remove_reference' in namespace 'std'
typename std::remove_reference<P1>::type p1_;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:401:33: error: expected member name or ';' after declaration specifiers
typename std::remove_reference<P1>::type p1_;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:402:17: error: no type named 'remove_reference' in namespace 'std'
typename std::remove_reference<P2>::type p2_;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:402:33: error: expected member name or ';' after declaration specifiers
typename std::remove_reference<P2>::type p2_;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:403:17: error: no type named 'remove_reference' in namespace 'std'
typename std::remove_reference<P3>::type p3_;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:403:33: error: expected member name or ';' after declaration specifiers
typename std::remove_reference<P3>::type p3_;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:404:17: error: no type named 'remove_reference' in namespace 'std'
typename std::remove_reference<P4>::type p4_;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:404:33: error: expected member name or ';' after declaration specifiers
typename std::remove_reference<P4>::type p4_;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:405:17: error: no type named 'remove_reference' in namespace 'std'
typename std::remove_reference<P5>::type p5_;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:405:33: error: expected member name or ';' after declaration specifiers
typename std::remove_reference<P5>::type p5_;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:383:9: error: member initializer 'p1_' does not name a non-static data member or base class
      p1_(p1),
      ^~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:384:9: error: member initializer 'p2_' does not name a non-static data member or base class
      p2_(p2),
      ^~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:385:9: error: member initializer 'p3_' does not name a non-static data member or base class
      p3_(p3),
      ^~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:386:9: error: member initializer 'p4_' does not name a non-static data member or base class
      p4_(p4),
      ^~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Target //tensorflow/contrib/android:libtensorflow_inference.so failed to build
Use --verbose_failures to see the command lines of failed build steps.



how to solve this issue?

eliayakoumi avatar Jul 20 '18 08:07 eliayakoumi