Problems with cross compile for android

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Problems with cross compile for android

Daniel Kroker
Hello,

i have some problems with cross compile for android.
i need to build libssh for android.

If i run CMake like:
cmake .. -DCMAKE_SYSTEM_NAME=Android
-DCMAKE_ANDROID_STANDALONE_TOOLCHAIN=/home/da/Android/standalone-toolchain-4.9
-DCMAKE_SYSTEM_VERSION=21

i get the following error:

 -mtune=xscale -funwind-tables -no-canonical-prefixes  -g  -fPIE -pie
-Wl,--gc-sections -Wl,-z,nocopyreloc 
CMakeFiles/cmTC_88c04.dir/testCCompiler.c.o  -o cmTC_88c04
   
/home/da/Android/standalone-toolchain-4.9/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld:
error: cannot open crtbegin_dynamic.o: No such file or directory
   
/home/da/Android/standalone-toolchain-4.9/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld:
error: cannot open crtend_android.o: No such file or directory
    external/jemalloc/src/jemalloc.c:1422: error: undefined reference to
'pthread_atfork'
    external/jemalloc/src/jemalloc.c:1422: error: undefined reference to
'pthread_atfork'
    external/jemalloc/src/jemalloc.c:1422: error: undefined reference to
'pthread_atfork'
    external/jemalloc/src/jemalloc.c:1422: error: undefined reference to
'pthread_atfork'
    external/jemalloc/src/jemalloc.c:1358: error: undefined reference to
'atexit'
    clang80: error: linker command failed with exit code 1 (use -v to
see invocation)
    make[1]: *** [CMakeFiles/cmTC_88c04.dir/build.make:87: cmTC_88c04]
Error 1
    make[1]: Leaving directory
'/home/da/Downloads/libssh-0.7.4/build/CMakeFiles/CMakeTmp'
    make: *** [Makefile:121: cmTC_88c04/fast] Error 2


if i run
cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
-DCMAKE_SYSTEM_NAME=Android
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake
-DANDROID_STL_TYPE=gnustl_static -DCMAKE_SYSTEM_VERSION=21
-DANDROID_TOOLCHAIN=clang -DANDROID_PLATFORM=android-21
-DANDROID_ABI=arm64-v8a

i get the following message:
-- Performing Test HAVE_COMPILER__FUNCTION__ - Failed
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - not found
-- Looking for stdint.h
-- Looking for stdint.h - not found
-- Looking for stddef.h
-- Looking for stddef.h - not found
-- Check size of unsigned short
-- Check size of unsigned short - failed
-- Check size of unsigned int
-- Check size of unsigned int - failed
-- Check size of unsigned long
-- Check size of unsigned long - failed
CMake Error at /usr/share/cmake-3.13/Modules/TestBigEndian.cmake:49
(message):
  no suitable type found
Call Stack (most recent call first):
  ConfigureChecks.cmake:271 (test_big_endian)
  CMakeLists.txt:80 (include)

looks like that he doesnt find any header file.

Whats the best way to cross compile under linux for android?
Thanks for any suggestions.

Regards
Daniel

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake