Stockfish (v15.1) problem with creating a shared library (.so) in Android Studio

79 Views Asked by At

I'm using Windows and Anroid Studio with CMakeList.txt. I'm getting the following errors during the build process. The libstockfish.a file is generated but there is no .so file I need. Who can help with my problem?

cmd.exe /C "cd . && C:\Users\WB\AppData\Local\Android\Sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=aarch64-none-linux-android29 --sysroot=C:/Users/WB/AppData/Local/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -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 -fno-limit-debug-info  -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libstockfish.so -o C:\Users\WB\AndroidStudioProjects\08.05\Stockfish2\app\build\intermediates\cxx\Debug\6b651r66\obj\arm64-v8a\libstockfish.so CMakeFiles/stockfish.dir/benchmark.cpp.o CMakeFiles/stockfish.dir/bitbase.cpp.o CMakeFiles/stockfish.dir/bitboard.cpp.o CMakeFiles/stockfish.dir/endgame.cpp.o CMakeFiles/stockfish.dir/evaluate.cpp.o CMakeFiles/stockfish.dir/main.cpp.o CMakeFiles/stockfish.dir/material.cpp.o CMakeFiles/stockfish.dir/misc.cpp.o CMakeFiles/stockfish.dir/movegen.cpp.o CMakeFiles/stockfish.dir/movepick.cpp.o CMakeFiles/stockfish.dir/pawns.cpp.o CMakeFiles/stockfish.dir/position.cpp.o CMakeFiles/stockfish.dir/psqt.cpp.o CMakeFiles/stockfish.dir/search.cpp.o CMakeFiles/stockfish.dir/thread.cpp.o CMakeFiles/stockfish.dir/timeman.cpp.o CMakeFiles/stockfish.dir/tt.cpp.o CMakeFiles/stockfish.dir/tune.cpp.o CMakeFiles/stockfish.dir/uci.cpp.o CMakeFiles/stockfish.dir/ucioption.cpp.o  C:/Users/WB/AppData/Local/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/aarch64-linux-android/29/liblog.so  -latomic -lm && cd ."

ld: error: undefined symbol: Stockfish::Eval::NNUE::load_eval(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_istream<char, std::__ndk1::char_traits<char> >&)
>>> referenced by evaluate.cpp:98 (C:/Users/WB/AndroidStudioProjects/08.05/Stockfish2/app/src/main/cpp/evaluate.cpp:98)
>>>               CMakeFiles/stockfish.dir/evaluate.cpp.o:(Stockfish::Eval::NNUE::init())
>>> referenced by evaluate.cpp:114 (C:/Users/WB/AndroidStudioProjects/08.05/Stockfish2/app/src/main/cpp/evaluate.cpp:114)
>>>               CMakeFiles/stockfish.dir/evaluate.cpp.o:(Stockfish::Eval::NNUE::init())

I'm using the Develocode 777 instructions from the site: https://stackoverflow.com/questions/43566840/how-does-one-integrate-stockfish-into-an-android-app

0

There are 0 best solutions below