Dynamic-Linking

執行自定義編譯的執行檔返回“沒有這樣的文件或目錄”

  • October 1, 2018

我有一個執行檔,但是當我執行它時,我得到*“沒有這樣的文件或目錄”*

$ 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 位不匹配的類似問題的更多資訊,請參閱此問題

引用自:https://unix.stackexchange.com/questions/472653