cmakelists.txt设置so库的输出路径 android
时间: 2023-09-21 21:01:09 浏览: 154
Android Studio NDK 使用Cmake指定输出路径和生成多个so案例
4星 · 用户满意度95%
在CMakeLists.txt中,我们可以使用以下方式设定so库的输出路径。
首先,我们需要在CMakeLists.txt文件中添加以下代码来设置so库的输出路径:
```cmake
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI})
```
上述代码设置了CMake生成的so库文件的输出路径为`${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}`,其中`${CMAKE_SOURCE_DIR}`代表项目的根目录,`${ANDROID_ABI}`代表当前的Android ABI(Application Binary Interface)。
在这个例子中,我们假设你的项目使用了多个不同的ABI,比如armeabi-v7a、arm64-v8a和x86等。在这种情况下,`${ANDROID_ABI}`将根据当前编译的ABI自动设置为相应的值。
此外,我们还需要在Android.mk文件中添加以下代码,以确保编译生成的so库文件被正确复制到相应的输出路径。
```makefile
$(call import-add-path,$(LOCAL_PATH)/../../libs/$(TARGET_ARCH_ABI))
```
上述代码将`${PROJECT_PATH}/libs/${TARGET_ARCH_ABI}`路径添加到了编译路径中,其中`${TARGET_ARCH_ABI}`代表当前编译的ABI。
最后,我们需要在app的build.gradle文件中添加以下代码,以确保生成的so库文件被正确复制到APK的libs目录下。
```groovy
android {
// ...
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
// ...
}
```
上述代码将项目的libs目录设置为so库文件的源目录,这样在构建APK时,so库文件就会被复制到APK的libs目录下。
通过以上步骤,我们就可以成功设置CMake生成的so库文件的输出路径为项目的libs目录下的相应ABI目录。
阅读全文