NASM: 无法打开包含文件

NASM: unable to open include file

我已经看到了一些与此相关的其他问题,但其中 none 似乎有所帮助。 我的 nasm 目录是:

NASM/
  include/
    macros/
      consoleIO.inc
      loops.inc
  test.asm

consoleIO.inc 包含 loops.inc,但是当我将 consoleIO.inc 包含到 test.asm 和 assemble 中时,出现以下错误: include/macros/consoleIO.inc:1: fatal: unable to open include file `loops.inc' 不确定这是否相关,但我在 Xubuntu VM 上 运行 并且我 assemble 程序是这样的: nasm -f elf -o test.o test.asm

这在the manual中有解释:

Include files are searched for in the current directory (the directory you're in when you run NASM, as opposed to the location of the NASM executable or the location of the source file), plus any directories specified on the NASM command line using the -i option.

-i 选项已记录 here

因此,您需要将 NASM 的调用更改为类似以下内容:

nasm -f elf -i~/NASM/include/macros/ -o test.o test.asm