ARM 執行應用程序提示 -sh : no such file or direction

遇到這個問題,是因爲我自己交叉編譯了QT的庫,然後再根據這個庫,交叉編譯了QT的應用程序,將應用程序拷貝到板子上時,提示了這個問題。我使用之前的環境編譯的程序就不會出現這個問題。

首先根據網友的提示,我確定了我的文件是有可執行權限的,我的可執行文件和我的系統也是匹配的,都是32位的。同時我使用相同的編譯器進行編譯,其他程序是可以執行的。

後面根據以爲大佬的提示,使用readelf查看信息,最終解決了。如下:

readelf -l hello | grep interpreter       //-l 查看依賴哪些庫,  hello 是我的程序

顯示[Requesting program interpreter: /lib/ld-linux.so.3]

說明我的程序依賴 /lib/ld-linux.so.3 這個庫。

我去 /lib這個目錄下,發現沒有找到ld-linux.so.3

後面查看信息知道,ld-linux.so.3 是個軟鏈接。鏈接到我的 ld-linux-armhf.so.3這個庫, ld-linux-armhf.so.3 這個庫又鏈接到ld-2.21.so 這個庫。執行命令 ln -s ld-linux-armhf.so.3  ld-linux.so.3  //建立軟鏈接

然後再執行程序,發現程序可以正常運行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章