You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android原生C++项目中CMake无法链接.so文件的问题解决

Android原生C++项目引入共享库问题

我正在构建一个Android原生C++项目,想要引入名为general的共享库。文件布局如下:

  • .so文件存放于jniLibs下对应${ANDROID_ABI}的子目录中
  • 头文件存放在include/general目录下

我最初编写的CMake配置代码如下:

add_library(general SHARED IMPORTED)

set_target_properties(general PROPERTIES
        IMPORTED_LOCATION  "${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/libgeneral.so"
        )

include_directories(include/general)

...

target_link_libraries( # Specifies the target library.
        hello_cmale
        general
        ${log-lib}
        )

解决方案

general是CMake的保留关键字,直接使用会导致配置异常。只需将CMake文件中所有引用该库的名称替换为非关键字即可,比如改为general_lib,修改后的代码示例:

add_library(general_lib SHARED IMPORTED)

set_target_properties(general_lib PROPERTIES
        IMPORTED_LOCATION  "${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/libgeneral.so"
        )

include_directories(include/general)

...

target_link_libraries( # Specifies the target library.
        hello_cmale
        general_lib
        ${log-lib}
        )

内容的提问来源于stack exchange,提问作者user22275942

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 10:02:07