You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用riscv32工具链时如何禁用指令压缩以生成纯32位指令

RISC-V GCC生成完全无压缩32位指令解决方案

要彻底关闭GCC的RISC-V指令压缩,仅调整-march参数不足以覆盖默认配置,按以下步骤操作即可:

  • 同时指定无C扩展的架构标识和对应ABI,示例如下(可根据你需要的扩展调整,注意不要加c后缀):
    -march=rv32im -mabi=ilp32
    
  • 追加-mno-compress强制关闭指令压缩功能,该参数优先级高于架构的默认配置
  • 若编译后仍有压缩指令,追加-mno-relax关闭链接器松弛优化,部分GCC版本的链接器开启松弛时会主动将32位指令替换为16位压缩指令降低体积
  • 编译完成后可通过objdump -d 目标可执行文件反汇编,验证输出的所有指令均为32位长度

注意:如果编译时链接了预编译的静态库、CRT启动文件,需要先使用上述参数重新编译所有依赖组件,否则预编译组件内自带的压缩指令仍会出现在最终产物中。

内容的提问来源于stack exchange,提问作者SweetCaffe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:36:04