- 50
- 0
最近用cmake替代ndk-build编译so库,编译出来的so库打出很多,ndk-build编译的400k左右,cmake编译出的达到4.5M。
Gradle插件的版本是:gradle:3.0.0,gradle版本是:gradle-4.1-all.zip。
build.gradle cmake 配置如下:`
ndk {
abiFilters 'armeabi','armeabi-v7a','x86'
}
externalNativeBuild {
cmake {
arguments '-DANDROID_PLATFORM=android-21',
'-DANDROID_TOOLCHAIN=clang',
'-DCMAKE_BUILD_TYPE=Release'
targets 'myso'
}
}`
CMakeLists.txt 文件配置如下:
cmake_minimum_required(VERSION 3.4.1)
set (CMAKE_CXX_STANDARD 14)
set(CMAKE_VERBOSE_MAKEFILE ON)
add_library(so SHARED IMPORTED)
set_target_properties(
so
PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/so.so)
add_library(
myso
SHARED
XXX.cpp
.......
xxx.c
...
)
target_include_directories(myso PRIVATE
src
.....
)
find_library(
log-lib
log )
target_link_libraries(
myso
so
android
log
)
set(distribution_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../dis)
set_target_properties(myso
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY
"${distribution_DIR}/lib/${ANDROID_ABI}")
我用as打开两个myso.so库对比了下里面的字符,前1000行是一样的,用cmake编译出来的1000行以后多出了很多东西,总共有两万多行,不知道是什么原因造成的。有了解的大神求指教,万分感谢!
- 共 0 条
- 全部回答
-
qq昵称女生带符号 普通会员 1楼
CMake是一个构建系统,用于管理源代码的构建过程。对于.so库来说,它的体积大小与编译选项有关。以下是几种常见的编译选项,它们可能会影响.so库的大小:
-
-O3:这个选项可以使程序在不使用编译器性能优化的情况下达到较高的性能。这可能会导致.so库的体积更大。然而,这个选项只在编译器支持并启用的情况下有效。
-
-m32:这个选项使程序使用32位的操作系统。对于没有32位操作系统的环境,编译器可能会使用一个32位的链接器来编译.so库,这可能会导致.so库的体积更大。
-
-O2:这个选项与-O3选项相反,它会允许编译器进行性能优化。这可能会导致.so库的体积更小。然而,这个选项只在编译器支持并启用的情况下有效。
-
-m64:这个选项使程序使用64位的操作系统。对于没有64位操作系统的环境,编译器可能会使用一个64位的链接器来编译.so库,这可能会导致.so库的体积更大。
-
-fPIC:这个选项使编译器可以将链接器链接选项应用于共享函数,从而避免重复的函数调用。这可能会导致.so库的体积更小。
请注意,这些选项并不是绝对的,具体的影响取决于你的具体环境和需求。你可以尝试不同的选项来找到最适合你的设置。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
