首页 > 编程知识 正文

cmake生成动态库,静态库依赖其他静态库

时间:2023-05-06 10:14:34 阅读:147933 作者:2033

有些库为特定的CPU体系结构或APP应用程序二进制接口(ABI )提供单独的软件包,并将其组织在单独的目录中。 此方法有助于库充分利用特定的CPU体系结构,从而使库只能使用所需的库版本。 要将库的多个ABI版本添加到CMake构建脚本中,而不是为库的每个版本编写多个命令,请使用ANDROID_ABI路径变量。 此变量可以是NDK支持的一组默认ABI,也可以是一组过滤后的ABI,用于手动设置和使用网格。 例如:

add_library(… (. )

set _ target _ properties (# specifiesthetargetlibrary。

导入的lib

# specifiestheparameteryouwanttodefine

属性输入_ location

# providesthepathtothelibraryyouwanttoimport。

imported-lib/src/$ { Android _ ABI }/lib imported-lib.so }

要允许CMake在编译时搜索头文件,必须使用include_directories ()命令并包括头文件的路径。

include _ directories (imported-lib/include/)

注:如果要封装非生成依赖项的已生成库,例如,添加属于imported-lib依赖项的已生成库,则不需要执行以下步骤来关联库:

要将预构建库与自己的本机库相关联,请将其添加到CMake构建脚本的target_link_libraries ()命令中。

target _ link _ libraries (native-lib imported-lib app-glue $ { log-lib } ) )

生成APP应用程序时,Gradle会自动将导入的库封装到APK中。 您可以使用APK分析器查看Gradle将哪些库封装在APK中。 有关CMake命令的详细信息,请参阅CMake文档。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。