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

macOS Big Sur(x86_64)下nasm编译汇编代码无输出及链接报错求解

macOS 下 NASM 汇编 Hello World 运行方案

正确执行步骤

你的测试代码本身是正确的,按以下步骤执行即可得到预期输出:

  1. 汇编源码生成目标文件:
    nasm -f macho64 hello.asm -o hello.o
  2. 链接目标文件生成可执行程序:
    ld -e start -macosx_version_min 12.0 -arch x86_64 hello.o -lSystem -o hello

注意:-macosx_version_min 后的版本号可替换为你当前使用的 macOS 大版本号,避免版本兼容警告

  1. 运行可执行程序:
    ./hello
    运行后控制台即可输出Hello, World。

原有命令报错原因

  • 第一条命令nasm -f macho64 hello.asm仅完成汇编步骤,只会生成后缀为.o的目标文件,本身不会生成可执行文件也不会触发程序运行,无输出属于正常现象。
  • 第二条命令nasm -fmacho64 hello.asm && ld hello.o && ./a.out存在两处问题:一是ld默认将_main作为程序入口,你的代码中仅定义了start作为入口,未声明_main符号,链接时直接报错;二是未添加-lSystem参数链接系统库,即使入口正确也无法完成链接。
  • 第三条命令nasm -f macho64 hello.asm -o hell.o && ld -e _main -macosx_version_min 10.8 -arch x86_64 hello.o -lSystem存在两处问题:一是汇编步骤输出的目标文件名为hell.o,链接时却指定输入文件为hello.o,找不到对应输入文件;二是手动指定入口为_main,但你的代码中不存在该符号,依然会触发符号未定义错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:45:00