当 cMake 作为我的 Android Studio 构建过程的一部分运行时,是什么决定了它为哪些架构构建?

问题描述 投票:0回答:0

我不断收到以下构建错误:

错误堆栈跟踪

> Task :app:buildCMakeDebug[arm64-v8a] FAILED
C/C++: ninja: Entering directory `/Users/ME/repos/XXXX/XXXX_JAVA/app/.cxx/Debug/1c626b5a/arm64-v8a'
C/C++: clang++: error: linker command failed with exit code 1 (use -v to see invocation)

> Task :app:buildCMakeDebug[armeabi-v7a] FAILED
C/C++: ninja: Entering directory `/Users/ME/repos/XXXX/XXXX_JAVA/app/.cxx/Debug/1c626b5a/armeabi-v7a'
C/C++: /Users/ME/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lrust_ffi
C/C++: clang++: error: linker command failed with exit code 1 (use -v to see invocation)

> Task :app:buildCMakeDebug[x86] FAILED
C/C++: /Users/ME/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld: error: cannot find -lrust_ffi

> Task :app:buildCMakeDebug[x86_64] FAILED
C/C++: /Users/ME/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/bin/ld: error: cannot find -lrust_ffi

现在,完全尽管事实上它以某种方式坚持在它们的中间构造具有相对前缀

../../../../
的绝对路径(这肯定没有帮助),但我无法弄清楚是什么告诉 cMake 为 arm64 构建- v8a、armeabi-v7a、x86、x86_64,更不用说它派生这些路径的地方了。字符串“../../../../”字面上没有出现在项目中的任何地方,我的 cMake 文件没有指定任何架构:

CMakeLists.txt

cmake_minimum_required(VERSION 3.18.1)
project("XXXXjavaframework")
add_library(
        XXXXjavaframework
        SHARED
        native-lib.cpp)
find_library(
        log-lib
        log)
target_link_libraries(
        XXXXjavaframework
        ${log-lib})
include_directories(${CMAKE_SOURCE_DIR}/includes)
link_directories(${CMAKE_SOURCE_DIR}/lib)
target_link_libraries(XXXXjavaframework XXXX_ffi)

什么在告诉 cMake“使用这四种架构”?

c++ gradle cmake build toolchain
© www.soinside.com 2019 - 2024. All rights reserved.