我看到了一些关于这方面的其他问题,但似乎都没有帮助。我的nasm目录是:
NASM/
include/
macros/
consoleIO.inc
loops.inc
test.asm
consoleIO.inc包括loops.inc,但当我将consoleIO-inc包括到test.asm中并对其进行组装时,我会得到以下错误:include/macros/consoleIO.inc:1: fatal: unable to open include file `loops.inc'
不确定这是否相关,但我在Xubuntu虚拟机上运行这个程序,我这样组装程序:nasm -f elf -o test.o test.asm
这在手册中有解释:
Include文件是在当前目录(运行NASM时所在的目录,而不是NASM可执行文件的位置或源文件的位置(中搜索的,加上在NASM命令行上使用-i选项指定的任何目录。
此处介绍了-i
选项。
因此,您需要将对NASM的调用更改为类似以下内容:
nasm -f elf -i~/NASM/include/macros/ -o test.o test.asm