我有一个可执行文件,但是当我运行它时,我得到“没有这样的文件或目录”
$ 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位,操作系统也是如此。
这是因为我忘了-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位不匹配的类似问题的更多信息,请参见此问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句