Я следовал (надеюсь, правильно) этому руководству здесь https://github. com/libsdl-org/SDL/blob/main/docs/README-android.md, и я работал над всеми проблемами Gradle. В настоящее время я застрял на VCPKG, компилируя BGFX (и, вероятно, все) для x64-android, когда целью является Arm64-v8a.
Проблемы начались, потому что CMAKE_TOOLCHAIN_FILE используется для поиска/установки vcpkg .cmake, но при использовании ndk ему присваивается местоположение файла ndk. Поэтому я добавил include("C:/Users/charl/.vcpkg-clion/vcpkg/scripts/buildsystems/vcpkg.cmake") в файл CMakeLists.txt, чтобы использовать vcpkg.
Полная ошибка после запуска .\gradlew.bat installDebug такова:
Код: Выделить всё
.\gradlew.bat installDebug
> Task :app:buildCMakeDebug[arm64-v8a] FAILED
C/C++: ninja: Entering directory `C:\Users\charl\CLionProjects\Crossplatform\android-project\app\.cxx\Debug\3j4z1g21\arm64-v8a'
C/C++: cmd.exe /C "cd . && C:\Users\charl\AppData\Local\Android\Sdk\ndk\27.0.12077973\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=aarch64-none-linux-android21 --sysroot=C:/Users/charl/AppData/Local/Android/Sdk/ndk/27.0.12077973/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 -fno-limit-debug-info -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libCrossplatform.so -o ..\..\..\..\build\intermediates\cxx\Debug\3j4z1g21\obj\arm64-v8a\libCrossplatform.so CMakeFiles/Crossplatform.dir/main.cpp.o vcpkg_installed/x64-android/debug/lib/libbx.a vcpkg_installed/x64-android/debug/lib/libbgfx.a vcpkg_installed/x64-android/debug/lib/libbimg.a vcpkg_installed/x64-android/debug/lib/libbimg_decode.a vcpkg_installed/x64-android/debug/lib/libSDL3.a vcpkg_installed/x64-android/debug/lib/libglm.a vcpkg_installed/x64-android/debug/lib/libbx.a C:/Users/charl/AppData/Local/Android/Sdk/ndk/28.0.12916984/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so vcpkg_installed/x64-android/debug/lib/libtinyexr.a vcpkg_installed/x64-android/debug/lib/libminiz.a -lm -lOpenSLES -ldl -llog -landroid -lGLESv1_CM -lGLESv2 -latomic -lm && cd ."
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbx.a(amalgamated.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbgfx.a(amalgamated.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_averages_and_directions.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_block_sizes.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_color_quantize.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_color_unquantize.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_compress_symbolic.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_compute_variance.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_decompress_symbolic.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_diagnostic_trace.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_entry.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_find_best_partitioning.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_ideal_endpoints_and_weights.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_image.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_integer_sequence.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_mathlib.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_mathlib_softfloat.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_partition_tables.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_percentile_tables.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_pick_best_endpoint_format.cpp.o) is incompatible with aarch64linux
C/C++: ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
C/C++: clang++: error: linker command failed with exit code 1 (use -v to see invocation)
C/C++: ninja: build stopped: subcommand failed.
[Incubating] Problems report is available at: file:///C:/Users/charl/CLionProjects/Crossplatform/android-project/build/reports/problems/problems-report.html
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:buildCMakeDebug[arm64-v8a]'.
> com.android.ide.common.process.ProcessException: ninja: Entering directory `C:\Users\charl\CLionProjects\Crossplatform\android-project\app\.cxx\Debug\3j4z1g21\arm64-v8a'
[1/1] Linking CXX shared library ..\..\..\..\build\intermediates\cxx\Debug\3j4z1g21\obj\arm64-v8a\libCrossplatform.so
FAILED: ../../../../build/intermediates/cxx/Debug/3j4z1g21/obj/arm64-v8a/libCrossplatform.so
cmd.exe /C "cd . && C:\Users\charl\AppData\Local\Android\Sdk\ndk\27.0.12077973\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=aarch64-none-linux-android21 --sysroot=C:/Users/charl/AppData/Local/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_F
ORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libCrossplatform.so -o ..\..\..\..\build\intermediates\cxx\Debug\3j4z1g21\obj\arm64-v8a\libCrossplatform.so CMakeFiles/Crossplatform.dir/main.cpp.o vcpkg_installed/x64-android/d
ebug/lib/libbx.a vcpkg_installed/x64-android/debug/lib/libbgfx.a vcpkg_installed/x64-android/debug/lib/libbimg.a vcpkg_installed/x64-android/debug/lib/libbimg_decode.a vcpkg_installed/x64-android/debug/lib/libSDL3.a vcpkg_installed/x64-android/debug/lib/libglm.a vcpkg_installed/x64-android/debug/lib/libbx.a C:/Users/charl/AppData/Local/Android/Sdk/ndk/28.0.12916984/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so vcpkg_installed/x64-android/debug/lib/libtinyexr.a vcpkg_installed/x64-android/debug/lib/libminiz.a -lm -lOpenSLES -ldl -llog -landroid -lGLESv1_CM -lGLESv2 -latomic -lm && cd ."
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbx.a(amalgamated.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbgfx.a(amalgamated.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_averages_and_directions.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_block_sizes.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_color_quantize.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_color_unquantize.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_compress_symbolic.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_compute_variance.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_decompress_symbolic.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_diagnostic_trace.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_entry.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_find_best_partitioning.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_ideal_endpoints_and_weights.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_image.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_integer_sequence.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_mathlib.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_mathlib_softfloat.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_partition_tables.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_percentile_tables.cpp.o) is incompatible with aarch64linux
ld.lld: error: vcpkg_installed/x64-android/debug/lib/libbimg.a(astcenc_pick_best_endpoint_format.cpp.o) is incompatible with aarch64linux
ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
C++ build system [build] failed while executing:
@echo off
"C:\\Users\\charl\\AppData\\Local\\Android\\Sdk\\cmake\\3.22.1\\bin\\ninja.exe" ^
-C ^
"C:\\Users\\charl\\CLionProjects\\Crossplatform\\android-project\\app\\.cxx\\Debug\\3j4z1g21\\arm64-v8a" ^
Crossplatform
from C:\Users\charl\CLionProjects\Crossplatform\android-project\app
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.12/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD FAILED in 1s
18 actionable tasks: 2 executed, 16 up-to-date
Гитхаб находится здесь: https://github.com/TasmanianNoob/Crossplatform, я использую Clion.
В android-project/gradle.properties я установил org.gradle.java.home=C:/Program Files/Java/jdk-21 и в android-project/local.properties я set sdk.dir=C:/Users/charl/AppData/Local/Android/Sdk.
Мне нужно было отредактировать vcpkg/scripts/toolchains/android.cmake, поскольку переменные среды не передавались, поэтому в скрипте не было установлено ANDROID_NDK_HOME. Я просто жестко запрограммировал местоположение. Об этом я задам отдельный вопрос.
Подробнее здесь: https://stackoverflow.com/questions/793 ... -and-vcpkg
Мобильная версия