【发布时间】:2012-01-04 13:29:52
【问题描述】:
我有一个游戏源代码,但我无法在 nasm 上组装它,我不明白问题出在哪里。
这是生成文件:
# Makefile for the nibbles game.
all: nibbles_asm nibbles_asm_start
# Rule for compiling C source
.c.o:
gcc -Os -march=i686 -Wall -g -c $<
# Rule for compiling assembly source
.S.o:
as -gstabs $^ -o $@
# ASM game
nibbles_asm: main.o nibbles.o helpers.o
gcc -lcurses $^ -o -V $@
# ASM game
nibbles_asm_start: start.o nibbles.o helpers.o workaround.o
gcc -lcurses -lc -nostdlib $^ -o $@
clean:
rm -f *~
rm -f *.o
rm -f nibbles nibbles_asm
这是错误:
as -o nibbles.o nibbles.s
gcc -lcurses main.o nibbles.o helpers.o -o -V nibbles_asm
gcc: nibbles_asm: No such file or directory
make: *** [nibbles_asm] Error 1
似乎 -gstabs $^ -o $@ 不要构建 nibbles_asm 文件! 我也在终端自己输入了命令,但它给了我很多错误。我的朋友在他的电脑上运行这段代码,所以代码没有任何问题。
【问题讨论】:
-
迂腐评论:你不能在 nasm 上运行程序集。你在 CPU 上运行它。你用 nasm 组装它
-
-V到底是什么? -
没有 -V 它有这个错误:main.o: In function
main': /home/aida/Desktop/13/main.c:45: undefined reference tostart_game' 有人告诉我把它放在这里来解决这个问题 -
-o之后应该是一个文件名。如果需要-V,请将其移至别处——而不是选项和选项值之间。 -
我将 -V 移到了这里:gcc -V -lcurses $^ -o $@ 并且它没有构建 nibbles_asm 但至少它可以构建 nibbles_asm_start,请帮助为什么会这样?!整个汇编代码没有汇编! :(
标签: ubuntu assembly makefile x86 nasm