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

NASM 0.98.39中common符号报'redefined'错误的解决办法咨询

解决NASM 0.98.39下common符号编译报错的问题

问题重现

编译代码:

common foo 2:near
mov word [bx], foo
dummy:

执行编译命令:

nasm-0.98.39 -O9 -f obj -o tt.obj tt.nasm

触发错误:

tt.nasm:1: error: symbol `foo' redefined

问题原因

NASM 0.98.39在-O9优化级别下,对common指令中直接附加:near类型修饰的语法存在处理bug,错误判定符号被重复定义。新版本NASM已修复该问题,但受限于生产环境无法升级或修改优化参数,需调整代码兼容旧版本。

解决方案

将common声明中的:near类型修饰移至符号引用处,修改后代码如下:

common foo 2
mov word [bx], near foo
dummy:

此修改保持原功能不变:common foo 2定义大小为2字节的公共符号,near foo在引用时显式指定符号的近程类型,避开旧版本NASM的语法处理bug,可正常通过-O9优化编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:23:12