我正在尝试在用FASM编写的程序中使用GNU readline库。这是我的汇编代码:
format elf64
public _start
extrn readline
section ".text" executable
_start:
push prompt
call readline
jmp _start
section ".data"
prompt db ">> ", 0
然后我按如下方式编译和链接它:
$ fasm test.asm
$ ld -lreadline test.o -o test
但是当我尝试执行./test
bash时,会给出以下错误消息:
bash: ./test: No such file or directory
test
可执行文件存在于目录中。怎么了?我没有正确链接libreadline
库吗?
答案 0 :(得分:1)
当我在使用64位系统编译32位代码时,这种情况发生在我身上。您必须安装一些额外的32位开发工具和库(如适当的libc变体),以便32位二进制文件也可以被识别为可执行文件。