cannot dynamically load executable的尴尬经历
cannot dynamically load executable的尷尬經歷
運行新編譯的程序時報錯:
./sdktest: error while loading shared libraries:test.so: cannot dynamically load executable
1.【executable:可執行的】第一反應是動態庫編譯方式有問題,加入-shared等參數后仍然不行。
2.google baidu一圈,沒有可參考的結果。
3.readelf、objdump等查看 test.so,沒有發現問題。
4.仔細閱讀cannot dynamically load executable,這里的executable似乎不太對。如果executable是名詞,不是形容詞呢?翻譯就是:不能動態加載可執行文件。那就是說test.so是一個可執行文件。
5.將該so導出,file查看:
ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=f7b7efe0cf4ec3fa01db94edb515fef6478012c1, not stripped
確實為可執行文件。
6.目標機器上,執行該so,發現居然可以運行。
7.在目標機器上搜索所有的test.so,然后刪除。再次重新下載我編譯的so。
8.運行通過。
9.再次查找executable的解釋,在維基百科發現如下:
In computing, executable code or an executable file or executable program, sometimes simply referred to as an executable or binary…
10.結論:之前目標機器有一個可執行的test.so(也是無語)。
該問完全是英文不熟卡住的,看來英文水平真是很重要啊!
總結
以上是生活随笔為你收集整理的cannot dynamically load executable的尴尬经历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab中常用的清除命令clc,cl
- 下一篇: 手机串号IMEI的国际查询网站及说明