【发布时间】:2020-11-02 15:39:06
【问题描述】:
我正在尝试看看我们是否可以合理地从 ndk-build 迁移到 cmake 以构建我们的 Android 的 C++ 库。
当我使用 ndk-build 构建完全相同相同的代码以获得静态库 (.a) 时,它会生成一个 542k 的文件,而 cmake 会生成一个 1.7Mb 的文件。
我正在使用 boost 进行测试构建,只构建文件系统部分。
两者都是发布版本。
我已经搜索过是否需要特定的开关来获得大致相同的编译,但没有成功。
我正在使用 ndk 版本 19 进行构建,并带有相关的工具链文件。
这是一个已知问题吗?
【问题讨论】:
-
我猜 .a 文件最终会链接到某个 .so 文件中?您是否比较了最终出现在 APK 中的 .so 文件的大小?与 ndk-build 相比,当您使用 CMake 时,IIRC 剥离发生在构建过程的后期。
-
.so 也是使用 ndk-build 构建的大小的 3 倍。
-
您是在比较 APK 中的文件,而不是一些中间文件?
-
我正在比较两个构建中 libboostfilesystem.a 的大小,以及它所链接的 .so。
标签: android cmake android-ndk ndk-build