linux系統下遇到cannot execute binary file的問題,一般由以下情況造成:
- 非root用戶或者無執行權限
- 編譯環境不同(程序由其他操作環境復制過來)
對於第一種情況,采用增加執行權限即可chmod +x program
對於第二種情況,建議將該程序二進制包拷貝過來,重新編譯程序。因為我在實際操作過程中發現我將美國的VPS的整個操作系統環境打包后下載到本地服務器上解壓后運行其中的程序會有如題所示問題出現,百思不得其解,系統都為centos5.2,最終發現是兩者編譯環境不同所致:
- 美國VPS是AMD64位處理器
- 本地服務器是INTEL32位處理器
這兩者的硬件編譯環境有所差別,導致了這個問題。當然,下載的某些程序非二進制包,可以直接執行的,但卻出現該問題,也是因為內核匹配不了CPU,intel是x86的,amd是amd64或是32位版本,對應清楚下載。希望本文對看到的
