我有一个可执行文件,但是当我运行它时,我得到“没有这样的文件或目录”
$ 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 位不匹配的类似问题的更多信息,请参阅这个问题