以suitespares中的libcholmod.so.3.0.13,先使用命令readelf -d libcholmod.so.3.0.13
讀取其need庫如下:
標記 型別 名稱/值
0x00000001 (needed) 共享庫:[libm.so.6]
0x00000001 (needed) 共享庫:[libamd.so.2]
0x00000001 (needed) 共享庫:[libcolamd.so.2]
0x00000001 (needed) 共享庫:[libsuitesparseconfig.so.5]
0x00000001 (needed) 共享庫:[libccolamd.so.2]
0x00000001 (needed) 共享庫:[libcamd.so.2]
0x00000001 (needed) 共享庫:[libmetis.so]
0x00000001 (needed) 共享庫:[liblapack.so.3]
0x00000001 (needed) 共享庫:[libblas.so.3]
0x00000001 (needed) 共享庫:[libgomp.so.1]
0x00000001 (needed) 共享庫:[libgcc_s.so.1]
0x00000001 (needed) 共享庫:[libpthread.so.0]
0x00000001 (needed) 共享庫:[libc.so.6]
0x00000001 (needed) 共享庫:[ld-linux-armhf.so.3]
0x0000000e (soname) library soname: [libcholmod.so.3]
0x0000000c (init) 0x4c04
在android中,沒有像linux中一樣有linkname, soname, realname這種版本控制,所以,我們可以把needed中的這種帶版本的soname改為linkname,使用命令patchelf --replace-needed libm.so.6 libm.so libcholmod.so.3.0.13
,即把其依賴的libm.so.6
改為了libm.so
標記 型別 名稱/值
0x00000001 (needed) 共享庫:[libm.so]
0x00000001 (needed) 共享庫:[libamd.so.2]
使用命令patchelf --set-soname libnewname.so.3.4.5 path/to/libmylibrary.so.1.2.3
,結果:由libcholmod.so.3
變成了libcholmod.so
0x00000001 (needed) 共享庫:[ld-linux-armhf.so.3]
0x0000000e (soname) library soname: [libcholmod.so]
0x0000000c (init) 0x4c04
0x0000000d (fini) 0xc2674
mv libcholmod.so.3.0.13 libcholmod.so
mysql修改庫名 MySQL中修改庫名的操作教程
mysql在5.1引入了乙個rename database操作,但在mysql5.1.23後又不支援這個命令。可以說是乙個實驗性的功能,沒有在生產中支援過 mysql 5.1 release在mysql 5.1.30 那麼生產中我們有時為了追求完美需要改一下庫名。怎麼操作呢?這裡提供乙個變通的方法。...
動態so庫修改方法
對於linux和android開發者,有時可能需要檢視或者修改.so檔案,下面來講述如何檢視或者修改so檔案。ida pro 010 editor 注意安裝完ida後通常會生成兩個快捷圖示32位和64位,這個是對應於so的,如果so是32位的,則開啟32位的32位的快捷圖示 開啟之後,載入so,通常...
so庫建立,使用和依賴關係
我對so庫的name的理解 libtest.so libtest.so.1 libtest.so.1.1 libtest.so 用在gcc的編譯選項 ltest,在生成程式時會去尋找libtest.so libtest.so.1.1 so庫的全名,包含major version and minor ...