Android compilation failed

Summary

compiling on Android Studio fails. Creating a simple native c++ project on android studio, cloning the repo under cpp folder, and adding add_subdirectory(eigen) to the main CMakelists.txt file.

Environment

  • Operating System : Android
  • Architecture : arm
  • Eigen Version : current master
  • Compiler Version : clang 14
  • Compile Flags : see error message
  • Vector Extension : unknown

Minimal Example

as per Summary. Can't be more minimal than that.

What is the current bug behavior?

Compilation fails.

What is the expected correct behavior?

Compilation succeeds.

Relevant logs

Execution failed for task ':app:buildCMakeDebug[arm64-v8a]'.
> com.android.ide.common.process.ProcessException: ninja: Entering directory `/Users/bloom/sw_develop/BloomEngineering/AndroidLibraries/Eigen3/app/.cxx/Debug/725k4l40/arm64-v8a'
  [1/740] Building CXX object eigen/doc/examples/CMakeFiles/DenseBase_middleCols_int.dir/DenseBase_middleCols_int.cpp.o
  [2/740] Building CXX object eigen/doc/examples/CMakeFiles/DenseBase_middleRows_int.dir/DenseBase_middleRows_int.cpp.o
  [3/740] Building CXX object eigen/doc/examples/CMakeFiles/DenseBase_template_int_middleRows.dir/DenseBase_template_int_middleRows.cpp.o
  [4/740] Building CXX object eigen/doc/examples/CMakeFiles/DenseBase_template_int_middleCols.dir/DenseBase_template_int_middleCols.cpp.o
  [5/740] Building CXX object eigen/doc/examples/CMakeFiles/QuickStart_example.dir/QuickStart_example.cpp.o
  [6/740] Building CXX object eigen/doc/examples/CMakeFiles/TemplateKeyword_simple.dir/TemplateKeyword_simple.cpp.o
  [7/740] Linking CXX executable /Users/bloom/sw_develop/BloomEngineering/AndroidLibraries/Eigen3/app/build/intermediates/cxx/Debug/725k4l40/obj/arm64-v8a/QuickStart_example
  FAILED: /Users/bloom/sw_develop/BloomEngineering/AndroidLibraries/Eigen3/app/build/intermediates/cxx/Debug/725k4l40/obj/arm64-v8a/QuickStart_example 
  : && /Users/bloom/Library/Android/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android27 --sysroot=/Users/bloom/Library/Android/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security  -std=c++17 -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wshorten-64-to-32 -Wenum-conversion -Wc++11-extensions -Wdouble-promotion -Wshadow -Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-check-new -fno-common -fstrict-aliasing -fPIE -fno-limit-debug-info -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments -Wl,--gc-sections eigen/doc/examples/CMakeFiles/QuickStart_example.dir/QuickStart_example.cpp.o -o /Users/bloom/sw_develop/BloomEngineering/AndroidLibraries/Eigen3/app/build/intermediates/cxx/Debug/725k4l40/obj/arm64-v8a/QuickStart_example  -latomic -lm && cd /Users/bloom/sw_develop/BloomEngineering/AndroidLibraries/Eigen3/app/.cxx/Debug/725k4l40/arm64-v8a/eigen/doc/examples && QuickStart_example >/Users/bloom/sw_develop/BloomEngineering/AndroidLibraries/Eigen3/app/.cxx/Debug/725k4l40/arm64-v8a/eigen/doc/examples/QuickStart_example.out
  /bin/sh: QuickStart_example: command not found

all the other errors are similar.

Anything else that might help

it seems to me that && QuickStart_example >/Users/bloom/sw_develop/BloomEngineering/AndroidLibraries/Eigen3/app/.cxx/Debug/725k4l40/arm64-v8a/eigen/doc/examples/QuickStart_example.out

misses something just after the &&. Maybe a variable that must have been a command and instead is empty (command not present in the environment)?

I know I can use just the source code, but I'd like to compile so to generate the Eigen3config.cmake so other projects using the lib could find it with find_package.

  • Have a plan to fix this issue.