Compile protobuf-2.4.1 code on NDK, version (android-ndk-r8-windows.) -


hi trying compile protobuf-2.4.1 code on ndk version (android-ndk-r8-windows.)

i have set below:

prebuilt=/cygdrive/d/d_drive/project/pr/ccore/code/ndk/android-ndk-r8-windows/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3  platform=/cygdrive/d/d_drive/project/pr/ccore/code/ndk/android-ndk-r8-windows/android-ndk-r8/platforms/android-4/arch-arm/  export cc="/cygdrive/d/d_drive/project/pr/ccore/code/ndk/android-ndk-r8-windows/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-gcc"  export cflags="-fpic -dandroid -nostdlib"  export android_root="/cygdrive/d/d_drive/project/pr/ccore/code/ndk/android-ndk-r8-windows/android-ndk-r8"  export ldflags="-wl,-rpath-link=$android_root/platforms/android-4/arch-arm/usr/lib/ -l$android_root/platforms/android-4/arch-arm/usr/lib/"  export cppflags="-i$android_root/platforms/android-4/arch-arm/usr/include/"  cppflags="-i$android_root/platforms/android-4/arch-arm/usr/include/" cppflags=$cppflags:"-i$android_root/sources/cxx-stl/gnu-libstdc++/include/" export cppflags  ./configure --host=arm-eabi 

i getting following issues while doing ndk-build:

in file included d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:33: d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:41:18: error: string: no such file or directory d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:37:18: error: vector: no such file or directory d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:48:2: error: #error "no suitable threading library available." in file included d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:33: d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:136: error: 'string' in namespace 'std' not name type d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:647: error: expected unqualified-id before '&' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:647: error: expected ')' before '&' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:647: error: 'google::protobuf::internal::logmessage& google::protobuf::internal::logmessage::operator<<(...)' must not have variable number of arguments d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:647: error: expected ';' before '&' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:663: error: 'string' in namespace 'std' not name type d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:742: error: expected unqualified-id before '&' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:742: error: expected ')' before '&' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:742: error: expected initializer before '&' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.h:757: error: expected constructor, destructor, or type conversion before '*' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: in function 'void google::protobuf::internal::verifyversion(int, int, const char*)': d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:62: error: 'versionstring' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:74: error: 'versionstring' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: @ global scope: d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:84: error: 'string' not name type d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:108: error: iso c++ forbids declaration of 'string' no type d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:108: error: expected ',' or '...' before '&' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: in function 'void google::protobuf::internal::defaultloghandler(google::protobuf::loglevel, const char*, int, int)': d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:114: error: 'message' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: @ global scope: d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:119: error: iso c++ forbids declaration of 'string' no type d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:119: error: expected ',' or '...' before '&' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:123: error: expected initializer before '*' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:141: error: iso c++ forbids declaration of 'string' no type d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:141: error: expected ',' or '...' before '&' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: in member function 'google::protobuf::internal::logmessage& google::protobuf::internal::logmessage::operator<<(int)': d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:142: error: 'message_' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:142: error: 'value' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: in member function 'google::protobuf::internal::logmessage& google::protobuf::internal::logmessage::operator<<(const char*)': d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:147: error: 'message_' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: in member function 'google::protobuf::internal::logmessage& google::protobuf::internal::logmessage::operator<<(char)': d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:168: error: 'message_' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: @ global scope: d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:169: error: redefinition of 'google::protobuf::internal::logmessage& google::protobuf::internal::logmessage::operator<<(int)' d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:141: error: 'google::protobuf::internal::logmessage& google::protobuf::internal::logmessage::operator<<(int)' defined here d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: in member function 'google::protobuf::internal::logmessage& google::protobuf::internal::logmessage::operator<<(google::protobuf::uint)': d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:170: error: 'message_' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: in member function 'google::protobuf::internal::logmessage& google::protobuf::internal::logmessage::operator<<(long int)': d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:171: error: 'message_' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: in member function 'google::protobuf::internal::logmessage& google::protobuf::internal::logmessage::operator<<(long unsigned int)': d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:172: error: 'message_' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: in member function 'google::protobuf::internal::logmessage& google::protobuf::internal::logmessage::operator<<(double)': d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:173: error: 'message_' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: in member function 'void google::protobuf::internal::logmessage::finish()': d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:190: error: 'log_handler_' not member of 'google::protobuf::internal' d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:190: error: 'message_' not declared in scope d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc: @ global scope: d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:208: error: expected constructor, destructor, or type conversion before '*' token d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:377: error: expected '}' @ end of input d:/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/jni/src/google/protobuf/stubs/common.cc:377: error: expected '}' @ end of input /cygdrive/d/d_drive/project/pr/ccore/code/ndk/android-ndk-r8-windows/android-ndk-r8/build/core/build-binary.mk:243: recipe target `/cygdrive/d/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/obj/local/armeabi/objs/protobuf/src/google/protobuf/stubs/common.o' failed make: *** [/cygdrive/d/d_drive/project/pr/ccore/code/ndk/eclipse-sdk-3.7.1-win32/eclipse/workspace/cmnc/obj/local/armeabi/objs/protobuf/src/google/protobuf/stubs/common.o] error 1 

this ndk documentation:

c++ stl support:

the standalone toolchain comes copy of gnu libstdc++ library, provides implementation of c++ standard template library. use it, need link proper library:

use -lstdc++ link against static library version. ensures required c++ stl code included final binary. ideal if generating single shared library or executable. recommended way it.

  • use -lgnustl_shared link against shared library version. required if have several related shared libraries or executables need run in same address space @ runtime (some global variables need defined uniquely, not possible if link static libstdc++ against each 1 of executables).

    if use option, need ensure libgnustl_shared.so copied device code load properly. file at:

$toolchain/arm-linux-androideabi/lib/ arm toolchains

$toolchain/i686-android-linux/lib/ x86 ones.

$toolchain/mipsel-linux-android/lib/ mips toolchain

important: gnu libstdc++ licensed under gplv3 linking exception. see following url details:

      http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01s02.html 

if cannot comply requirements, i.e. cannot redistribute shared library, not use in project.

the reason shared version of gnu libstdc++ not called libstdc++.so because conflict @ runtime system's own minimal c++ runtime, /system/lib/libstdc++.so. enforces new name gnu elf library. not problem static library.


Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -