報(bào)錯(cuò):
或者報(bào)錯(cuò):
file format not recognized; treating as linker script
分析:
? 應(yīng)該是動(dòng)態(tài)庫鏈接的庫位置不對(duì),默認(rèn)在目錄usr/lib/ 下查找動(dòng)態(tài)庫潭千。
方式一 用ln -s建立創(chuàng)建軟連接,確保/usr/lib下存在庫。
? ln -s /絕對(duì)路徑/源 /絕對(duì)路徑/目的
方式二 編譯時(shí)使用-rpath 或者-rpath-link,例如如下gcc編譯時(shí)設(shè)置
mips64el-redhat-linux-gcc -o test *.c -Wall -L./lib/mips64le/ -lpthread -lm -Wl,-rpath=/usr/local/gcc-4.8.3-d197-n64-loongson/usr/mips64el-redhat-linux/lib64/
擴(kuò)展:<忘記原文在哪里了加匈,記錄核心如下>
(1)-rpath和-rpath-link都可以在鏈接時(shí)指定庫的路徑铁追;
(2)運(yùn)行可執(zhí)行文件時(shí)憎兽,-rpath-link指定的路徑不再有效(鏈接器沒有將庫的路徑包含進(jìn)可執(zhí)行文件中)撑蚌,
而-rpath指定的路徑還有效(因?yàn)殒溄悠饕呀?jīng)將庫的路徑包含在可執(zhí)行文件中);
(3)-L指定的是鏈接時(shí)的庫路徑刽肠,生成的可執(zhí)行文件在運(yùn)行時(shí)庫的路徑仍由LD_LIBRARY_PATH環(huán)境變量指定溃肪;
(4)不管采用何種選項(xiàng)鏈接,當(dāng)提示找不到動(dòng)態(tài)庫時(shí)均可通過設(shè)置LD_LIBRARY_PATH解決音五。
如果鏈接時(shí)沒使用 '-rpath' 惫撰,那么如果定義了 LD_RUN_PATH 就會(huì)使用該值作為 rpath
掛載命令的順序
mount --bind A B
A 掛載給 B