运行自定义编译的可执行文件返回“没有这样的文件或目录”

运行自定义编译的可执行文件返回“没有这样的文件或目录”

我有一个可执行文件,但是当我运行它时,我得到“没有这样的文件或目录”

$ chmod a+x bin 
$ file bin 
bin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, not stripped
$ ./bin 
bash: ./bin: No such file or directory

请注意,该可执行文件实际上是 ELF 64 位,操作系统也是如此。

答案1

-dynamic-linker这是因为我忘记在调用中包含选项ld

-dynamic-linker /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2

如此称呼它,

ld -m elf_x86_64 -dynamic-linker /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -o bin

使它工作正常。

有关 32 位/64 位不匹配的类似问题的更多信息,请参阅这个问题

相关内容