opengisch / OSGeo4A

OSGeo4A is a build environment to cross-compile opensource GIS software for android devices
MIT License
30 stars 22 forks source link

Add 64 bit requirement #37

Closed m-kuhn closed 4 years ago

m-kuhn commented 5 years ago

https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html

m-kuhn commented 5 years ago

Related discussion

https://lists.qt-project.org/pipermail/android-development/2019-February/002117.html

edips commented 5 years ago

I built OSGeo4A for armV7. Now I try to build OSGeo4A for 64 bit arm with Qt 5.12.3 and NDK r19c on Ubuntu 18.04. I get error about qtkeychain:

Leaving arm64-v8a environment
Call build_qtkeychain
Entering in arm64-v8a environment
Compiler found at /home/edip/Documents/android-ndk-r19c-linux-x86_64/toolchains/llvm/prebuilt/linux-x86_64/bin//aarch64-linux-android21-clang
CMake Warning at /usr/share/cmake-3.10/Modules/FindQt4.cmake:620 (message):
  /usr/bin/qmake-qt4 reported QT_INSTALL_LIBS as "/usr/lib/x86_64-linux-gnu"
  but QtCore could not be found there.  Qt is NOT installed correctly for the
  target build environment.
Call Stack (most recent call first):
  CMakeLists.txt:106 (find_package)

CMake Error at /usr/share/cmake-3.10/Modules/FindQt4.cmake:628 (message):
  Could NOT find QtCore.  Check
  /home/edip/workspace/qgis_android/OSGeo4A/build/qtkeychain/androidkeystore/build-arm64-v8a/CMakeFiles/CMakeError.log
  for more details.
Call Stack (most recent call first):
  CMakeLists.txt:106 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/edip/workspace/qgis_android/OSGeo4A/build/qtkeychain/androidkeystore/build-arm64-v8a/CMakeFiles/CMakeOutput.log".

I deleted qtkeychain recipe and I ran it again, this time I got exiv2 library error:

/home/edip/Documents/android-ndk-r19c-linux-x86_64/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: warning: libiconv.so, needed by ../lib/libexiv2.so, not found (try using -rpath or -rpath-link)
../lib/libexiv2.so: undefined reference to `libiconv'
../lib/libexiv2.so: undefined reference to `libiconv_open'
../lib/libexiv2.so: undefined reference to `libiconv_close'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
samples/CMakeFiles/key-test.dir/build.make:98: recipe for target 'bin/key-test' failed
make[2]: *** [bin/key-test] Error 1
/home/edip/Documents/android-ndk-r19c-linux-x86_64/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: warning: libiconv.so, needed by ../lib/libexiv2.so, not found (try using -rpath or -rpath-link)
CMakeFiles/Makefile2:523: recipe for target 'samples/CMakeFiles/key-test.dir/all' failed
make[1]: *** [samples/CMakeFiles/key-test.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/home/edip/Documents/android-ndk-r19c-linux-x86_64/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: warning: libz.so, needed by ../lib/libexiv2.so, not found (try using -rpath or -rpath-link)
/home/edip/Documents/android-ndk-r19c-linux-x86_64/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: warning: libiconv.so, needed by ../lib/libexiv2.so, not found (try using -rpath or -rpath-link)
/home/edip/Documents/android-ndk-r19c-linux-x86_64/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: warning: libiconv.so, needed by ../lib/libexiv2.so, not found (try using -rpath or -rpath-link)
../lib/libexiv2.so: undefined reference to `libiconv'
../lib/libexiv2.so: undefined reference to `libiconv_open'
../lib/libexiv2.so: undefined reference to `libiconv_close'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
samples/CMakeFiles/mmap-test.dir/build.make:98: recipe for target 'bin/mmap-test' failed
make[2]: *** [bin/mmap-test] Error 1
CMakeFiles/Makefile2:447: recipe for target 'samples/CMakeFiles/mmap-test.dir/all' failed
make[1]: *** [samples/CMakeFiles/mmap-test.dir/all] Error 2
../lib/libexiv2.so: undefined reference to `libiconv'
../lib/libexiv2.so: undefined reference to `libiconv_open'
../lib/libexiv2.so: undefined reference to `libiconv_close'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
samples/CMakeFiles/iptctest.dir/build.make:98: recipe for target 'bin/iptctest' failed
make[2]: *** [bin/iptctest] Error 1
CMakeFiles/Makefile2:485: recipe for target 'samples/CMakeFiles/iptctest.dir/all' failed
make[1]: *** [samples/CMakeFiles/iptctest.dir/all] Error 2
../lib/libexiv2.so: undefined reference to `compress'
../lib/libexiv2.so: undefined reference to `crc32'
../lib/libexiv2.so: undefined reference to `uncompress'
../lib/libexiv2.so: undefined reference to `libiconv'
../lib/libexiv2.so: undefined reference to `libiconv_open'
../lib/libexiv2.so: undefined reference to `libiconv_close'
../lib/libexiv2.so: undefined reference to `compress2'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
src/CMakeFiles/exiv2.dir/build.make:175: recipe for target 'bin/exiv2' failed
make[2]: *** [bin/exiv2] Error 1
CMakeFiles/Makefile2:321: recipe for target 'src/CMakeFiles/exiv2.dir/all' failed
make[1]: *** [src/CMakeFiles/exiv2.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
m-kuhn commented 5 years ago

64 bit is not yet working (but that needs to be fixed in the coming months) disable it in the config. The second error is caused by recompiling after an incomplete first build (would also nice to have a look at that some time).