全部配置 / KN-BINARY-PRINTMODULE

-Xbinary=printModule

Xbinary=printModule · KN-BINARY-PRINTMODULE · 编译器参数(Native)

重要:低 · 工具/诊断 默认:默认关 场合:排障诊断 来源:CPF-KMP-CMP社区新增

默认值:默认关。消费侧默认 false。使用场合:排障诊断。排障诊断:定位编译或运行问题时短时开启,结束后应关闭。

它是做什么的

用途。打印编译模块相关调试信息。示例取值:`printModule=true`(打印模块划分后中断)。

影响。改变产物拆分与链接边界;配错会导致缺符号或链接失败。

适用场景。模块化拆分前的分析开关:打印 module 划分后中断编译;用完关闭。

约束与联动。上游无此 -Xbinary。社区新增:编译期打印模块相关诊断信息;默认 false,属排障/内部观察开关。

取值说明

布尔 · 写法 -Xbinary=printModule=true|false

可写。true / false

定义依据:konan/BinaryOptions.kt 在仓库中打开

怎么用

  1. 配置入口:build.gradle.kts → ohosArm64.binaries.all { freeCompilerArgs += "-Xbinary=printModule=true" }
  2. 示例
// 文件:build.gradle.kts(应用的 Kotlin 模块,例如 composeApp)
kotlin {
  ohosArm64 {  // 按实际 native target 调整
    binaries.all {
      freeCompilerArgs += "-Xbinary=printModule=true"  // 打印模块划分后中断
    }
  }
}
  1. 生效:Sync 后执行该目标的 compile/link。
  2. 验证:确认输出中出现预期诊断内容(不仅是命令行出现 `-Xbinary=printModule=true`)。
  3. 回滚:从 binaries.all 的 freeCompilerArgs 中删除该项后 Clean 并重编。
  4. 注意:会显著增加日志或中断流水线;定位完及时去掉。

默认行为 默认关

不写这个配置时,编译器会怎么处理?

此选项默认关闭,不设置时不生效。需要时显式开启。

消费侧默认 false。

相关文档

以下摘抄原文中与本配置最相关的段落,便于速读;完整上下文请点原文。

溯源与对照

状态
实验(-X,兼容性不保证)
版本基线
2.2.21-1.0.0
定义位置类型
Native 二进制选项(BinaryOptions / -Xbinary)
源码路径
kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BinaryOptions.kt 在仓库中打开
相对上游的改动
上游无此 -Xbinary。社区新增:编译期打印模块相关诊断信息;默认 false,属排障/内部观察开关。