全部配置 / KN-BINARY-CODESIZEOPT
-Xbinary=codesizeOpt
Xbinary=codesizeOpt · KN-BINARY-CODESIZEOPT · 编译器参数(Native)
重要:高 · 影响大
默认:默认开
场合:流水线专用
来源:CPF-KMP-CMP社区新增 · 缺文档
待解决问题。文档缺口:此项为 CPF-KMP-CMP社区新增,但尚未挂接社区文档。应补充专章或在既有手册中明确提及本配置后再挂链。
默认值:默认开。消费侧默认 true(拆分编译)。使用场合:流水线专用。流水线专用:拆分编译、发 runtime / stdlib 的构建流水线使用。
它是做什么的
用途。启用跨 klib 引用分析以削减导出符号,利于减小产物体积(拆分编译场景)。示例取值:`codesizeOpt=true`(削减跨 klib 导出)。
影响。主要影响包体;可能折中性能或可调试性。
适用场景。Release 或包体敏感场景评估;改后对比体积与性能。
约束与联动。上游无此 -Xbinary。社区新增:在模块化/拆分编译下做跨 klib 引用分析,减少导出符号以缩小包体;默认 true,常与 moduleIncludeOnly 等拆分管线联用。
取值说明
- Enable cross-klib reference analysis to reduce exported symbols in split compilation mode.
可写。true / false
定义依据:konan/BinaryOptions.kt 在仓库中打开
怎么用
- 配置入口:build.gradle.kts → ohosArm64.binaries.all { freeCompilerArgs += "-Xbinary=codesizeOpt=true" }
- 示例:
// 文件:build.gradle.kts(应用的 Kotlin 模块,例如 composeApp)
kotlin {
ohosArm64 { // 按实际 native target 调整
binaries.all {
freeCompilerArgs += "-Xbinary=codesizeOpt=true" // 削减跨 klib 导出
}
}
}
- 生效:Sync 后执行该目标的 compile/link。
- 验证:编译日志出现 `-Xbinary=codesizeOpt=true`。
- 回滚:从 binaries.all 的 freeCompilerArgs 中删除该项后 Clean 并重编。
- 注意:实验项无稳定兼容保证;改前留可回滚配置。
默认行为 默认开
不写这个配置时,编译器会怎么处理?
此选项默认开启,不设置时即生效。若不需要,需显式关闭。
消费侧默认 true(拆分编译)。
相关文档
当前无 CPF 文档链接。补齐社区文档并挂链后,此缺口告警将消失。