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
相关产品推荐
相关产品推荐

