【发布时间】:2014-01-08 09:46:06
【问题描述】:
[root@GoodiesArch ASM]# ls
EXEC* file.sh* this.asm
[root@GoodiesArch ASM]# ./EXEC
bash: ./EXEC: No such file or directory
[root@GoodiesArch ASM]#
我有一个我编译的程序集文件,但它没有将其视为实际文件。并不是说我使用 [TAB] 自动填充来填写文件名。它检测到它,但它说“没有这样的文件或目录”
这是我用来编译它的。 我有一台 x64 位机器并且正在运行 32 位 asm 代码:
nasm -f elf32 -o tmp.o this.asm
ld -s -lc -L /usr/lib32/ -m elf_i386 -o EXEC tmp.o
它在ls 和tab 中显示文件,但是当我按Enter 时,它什么也没显示。
更新: 好的。当我不通过 ASM 文件调用 C 函数时,我可以编译它并运行,没有错误,使用这个:
nasm -f elf32 -o tmp.o this.asm
ld -s -m elf_i386 -o EXEC tmp.o
【问题讨论】:
-
如果它不是一个二进制文件,我会说它可能有一个糟糕的 she-bang 行,但是对于一个二进制文件我没有想法。
-
它确实是一个二进制文件。我可以很好地执行 shell 脚本。我应该更新它,如果我以不同的方式编译它,我可以执行它,但程序不允许我这样做。