linux系統下遇到cannot execute binary file的問題,通常由如下狀況形成:linux
- 非root用戶或者無執行權限
- 編譯環境不一樣(程序由其餘操做環境複製過來)
對於第一種狀況,採用增長執行權限便可chmod +x programcentos
對於第二種狀況,建議將該程序二進制包拷貝過來,從新編譯程序。由於我在實際操做過程當中發現我將美國的VPS的整個操做系統環境打包後下載到本地服務器上解壓後運行其中的程序會有如題所示問題出現,百思不得其解,系統都爲centos5.2,最終發現是二者編譯環境不一樣所致:服務器
- 美國VPS是AMD64位處理器
- 本地服務器是INTEL32位處理器
這二者的硬件編譯環境有所差異,致使了這個問題。固然,下載的某些程序非二進制包,能夠直接執行的,但卻出現該問題,也是由於內核匹配不了CPU,intel是x86的,amd是amd64或是32位版本,對應清楚下載。但願本文對看到的朋友有所幫助。ide