键盘快捷键

按 ← 或 → 切换章节

按 S 或 / 搜索本书

按 ? 显示快捷键帮助

按 Esc 关闭帮助

平台与常见问题

平台支持

平台目标格式运行库加载环境
Windows x64PE子进程 PATH
Linux x64ELFLD_LIBRARY_PATH
macOS ARM64 / x64Mach-ODYLD_LIBRARY_PATH

平台可用性还取决于官方清单是否提供该版本、该架构且具有 SHA-256 摘要的 SDK。Linux 支持 x64;macOS 支持与宿主原生架构一致的命令行程序,并选择对应的 slice。.app 分发和 Rosetta 转译由应用分发者处理。

检查 SDK 版本元数据

先运行 cjr inspect <binary>。ELF 需要保留 section headers。Mach-O 支持普通版本指针和 chained fixups。版本识别以完整且布局受支持的版本表为准;解析失败时,cjr 会报告具体原因。请向程序分发者索取保留版本元数据的构建产物。

核对官方发行记录

完整 SDK 版本、平台和官方摘要必须匹配。请确认清单中包含目标版本及其摘要;cjr 使用版本完全匹配的运行库。离线情况下还需要相应的本地元数据或已准备好的运行库记录。

已有运行库却仍然报错

检查应用目录和嵌入的搜索路径。Windows 应用目录的同名 DLL、Linux 旧式 RPATH、预加载变量或显式库路径可能覆盖 cjr 选择的运行库。发现冲突时,cjr 拒绝启动。应由程序分发者移除或修正冲突文件与路径。

应用自己的动态库和 stdx 由应用分发者提供,glibc 等系统依赖由系统包管理器安装。使用系统加载器诊断定位这些缺失项。

macOS 受限程序

cjr 对已识别的 hardened 或 restricted 程序拒绝注入加载环境。程序签名、entitlements 和 SIP 保持原样。需要此类分发方式的程序应自行携带并签名其运行库。

非 ASCII 参数

cjr 使用操作系统原生参数接口。部分仓颉 Windows SDK 的 main(args) 在解码中文参数时可能报错;若直接运行程序也有同样错误,应在 SDK 或应用中处理。

静态依赖检查读取二进制中声明的依赖。运行时插件、延迟加载和自定义加载器的错误由系统加载器或目标程序报告。