mklibs或mklibs-copy是個好東西(ubuntu中是兩個單獨的軟體包),可以把乙個elf檔案用到的庫給找出來,然後複製到乙個指定的地方。
基本用法是一樣的:
mklibs
/mklibs-
copy
-d dest_dir file
其中:dest_dir是用來存放找出來的so庫的,file是要用來分析的檔案。
stlxv@stlxvcomputer:~
/tmp
$mklibs-readelf --help
usage: mklibs-readelf [option]
...file
...prints informations about elf shared objects and executables
.mandatory arguments to long options are mandatory
forshort options too.-i
-interp
interpreter of executable-n,
-needed
needed shared libs-r,
-rpath
rpath setting-s,
-soname
soname of shared object-p,
-symbols-provided
provided symbols-u,
-symbols-undefined
undefined symbols
--help display this help and
exit
--version output version information and
exit
下面是兩個例子:
mklibs
stlxv@stlxvcomputer:~
$mklibs -d tmp//
usr/
bin/
ruby
i: using ld-linux.so
.2as dynamic linker
.i: library reduction pass 17
symbols,7
unresolved
i: library reduction pass
2285
symbols,16
unresolved
i: library reduction pass
3285
symbols,3
unresolved
i: library reduction pass
4285
symbols,3
unresolved
stlxv@stlxvcomputer:~
$ls -
lhtmp
/總用量 2.
3m-rwxr-xr-x
1stlxv stlxv 107k
2007-07
-1920:
31ld-linux.so
.2-rw-r--r--
1stlxv stlxv 22k
2007-07
-1920:
31libcrypt.so
.1-rw-r--r--
1stlxv stlxv 1.
2m 2007-07
-1920:
31libc.so
.6-rw-r--r--
1stlxv stlxv 9.
5k 2007-07
-1920:
31libdl.so
.2-rw-r--r--
1stlxv stlxv 146k
2007-07
-1920:
31libm.so
.6-rw-r--r--
1stlxv stlxv 79k
2007-07
-1920:
31libpthread.so
.0-rw-r--r--
1stlxv stlxv 762k
2007-07
-1920:
31libruby1.8
.so.1.8
stlxv@stlxvcomputer:~
$ldd
/usr
/bin
/ruby
linux-gate.so
.1=>
(0xffffe000
)libruby1.8
.so.1.8
=>
/usr
/lib
/libruby1.8
.so.1.8
(0xb7e04000
)libpthread.so
.0=>
/lib
/tls
/i686
/cmov
/libpthread.so
.0(0xb7ded000
)libdl.so
.2=>
/lib
/tls
/i686
/cmov
/libdl.so
.2(0xb7de8000
)libcrypt.so
.1=>
/lib
/tls
/i686
/cmov
/libcrypt.so
.1(0xb7dba000
)libm.so
.6=>
/lib
/tls
/i686
/cmov
/libm.so
.6(0xb7d93000
)libc.so
.6=>
/lib
/tls
/i686
/cmov
/libc.so
.6(0xb7c52000)/
lib/
ld-linux.so
.2(0xb7eee000)
mklibs-copy
stlxv@stlxvcomputer:~
$mklibs-
copy
-d tmp//
usr/
bin/
ruby
stlxv@stlxvcomputer:~
$ls -
lhtmp
/總用量 2.
4m-rwxr-xr-x
1stlxv stlxv 107k
2007-07
-1920:
33ld-linux.so
.2-rw-r--r--
1stlxv stlxv 22k
2007-07
-1920:
33libcrypt.so
.1-rwxr-xr-x
1stlxv stlxv 1.
2m 2007-07
-1920:
33libc.so
.6-rw-r--r--
1stlxv stlxv 9.
5k 2007-07
-1920:
33libdl.so
.2-rw-r--r--
1stlxv stlxv 146k
2007-07
-1920:
33libm.so
.6-rwxr-xr-x
1stlxv stlxv 106k
2007-07
-1920:
33libpthread.so
.0-rw-r--r--
1stlxv stlxv 762k
2007-07
-1920:
33libruby1.8
.so.1.8
stlxv@stlxvcomputer:~
$mklibs-readelf -n
/usr
/bin
/ruby
libruby1.8
.so.1.8
libpthread.so
.0libdl.so
.2libcrypt.so
.1libm.so
.6libc.so
.6
在命令列中加引數的檔案複製程式
這篇博文介紹使用命令列引數的程式設計方法,載體是用於檔案複製的程式。這也是我用markdown編輯器寫的第一篇博文。markdown在寫 逆襲大學 時用過,寫博文是第一次。下面的程式,可以完成由a.txt到b.txt的複製。include include using namespace std in...
在命令列中加引數的檔案複製程式
這篇博文介紹使用命令列引數的程式設計方法,載體是用於檔案複製的程式。這也是我用markdown編輯器寫的第一篇博文。markdown在寫 逆襲大學 時用過,寫博文是第一次。下面的程式,可以完成由a.txt到b.txt的複製。include include using namespace std in...
寫程式資料庫設計會用到的資料庫語句
查詢表結構 select 表名 case when a.colorder 1 then d.name else end,表說明 case when a.colorder 1 then isnull f.value,else end,欄位名 a.name,標識 case when columnprop...