cht電腦資訊gcin
adm Find login register

如何把多餘的 linked libraries 幹掉?

caleb
1 如何把多餘的 linked libraries 幹掉?
Promote 0 Bookmark 02007-11-20quote  

最新版的 dpkg 吐了下面這一大堆 warning messages。

很多是我本來就知道的,不過眼不見為淨…

現在既然有詳細 message 列表,就順便問一下…

怎樣把這些用不到的 linked lib 拿掉?

以 gcin-gb-toggle 為例,根本只用到 gdk 沒用到 gtk,去掉多餘 link 檔案可以大幅縮減。

 

gcin-setup-tab shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
gcin-setup-tab shouldn't be linked with libm.so.6 (it uses none of its symbols).
gcin-setup-tab shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
gcin-setup-tab shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
gcin-setup-tab shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
gcin-setup-tab shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
gcin-setup-tab shouldn't be linked with libdl.so.2 (it uses none of its symbols).
phoa2d shouldn't be linked with libgdk-x11-2.0.so.0 (it uses none of its symbols).
phoa2d shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
phoa2d shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
phoa2d shouldn't be linked with libm.so.6 (it uses none of its symbols).
phoa2d shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
phoa2d shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
phoa2d shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
phoa2d shouldn't be linked with libgobject-2.0.so.0 (it uses none of its symbols).
phoa2d shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
phoa2d shouldn't be linked with libdl.so.2 (it uses none of its symbols).
gcin shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
gcin shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
gcin shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
gcin shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
gcin shouldn't be linked with libdl.so.2 (it uses none of its symbols).
phod2a shouldn't be linked with libgtk-x11-2.0.so.0 (it uses none of its symbols).
phod2a shouldn't be linked with libgdk-x11-2.0.so.0 (it uses none of its symbols).
phod2a shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
phod2a shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
phod2a shouldn't be linked with libm.so.6 (it uses none of its symbols).
phod2a shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
phod2a shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
phod2a shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
phod2a shouldn't be linked with libgobject-2.0.so.0 (it uses none of its symbols).
phod2a shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
phod2a shouldn't be linked with libdl.so.2 (it uses none of its symbols).
sim2trad shouldn't be linked with libgdk-x11-2.0.so.0 (it uses none of its symbols).
sim2trad shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
sim2trad shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
sim2trad shouldn't be linked with libm.so.6 (it uses none of its symbols).
sim2trad shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
sim2trad shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
sim2trad shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
sim2trad shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
sim2trad shouldn't be linked with libdl.so.2 (it uses none of its symbols).
gcin-message shouldn't be linked with libgtk-x11-2.0.so.0 (it uses none of its symbols).
gcin-message shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
gcin-message shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
gcin-message shouldn't be linked with libm.so.6 (it uses none of its symbols).
gcin-message shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
gcin-message shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
gcin-message shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
gcin-message shouldn't be linked with libgobject-2.0.so.0 (it uses none of its symbols).
gcin-message shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
gcin-message shouldn't be linked with libdl.so.2 (it uses none of its symbols).
gcin-message shouldn't be linked with libglib-2.0.so.0 (it uses none of its symbols).
im-gcin.so shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
im-gcin.so shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
im-gcin.so shouldn't be linked with libm.so.6 (it uses none of its symbols).
im-gcin.so shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
im-gcin.so shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
im-gcin.so shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
im-gcin.so shouldn't be linked with libdl.so.2 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libgtk-x11-2.0.so.0 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libm.so.6 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libgobject-2.0.so.0 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libdl.so.2 (it uses none of its symbols).
gcin-gb-toggle shouldn't be linked with libglib-2.0.so.0 (it uses none of its symbols).
gtab-merge shouldn't be linked with libgtk-x11-2.0.so.0 (it uses none of its symbols).
gtab-merge shouldn't be linked with libgdk-x11-2.0.so.0 (it uses none of its symbols).
gtab-merge shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
gtab-merge shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
gtab-merge shouldn't be linked with libm.so.6 (it uses none of its symbols).
gtab-merge shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
gtab-merge shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
gtab-merge shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
gtab-merge shouldn't be linked with libgobject-2.0.so.0 (it uses none of its symbols).
gtab-merge shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
gtab-merge shouldn't be linked with libdl.so.2 (it uses none of its symbols).
juyin-learn shouldn't be linked with libgdk-x11-2.0.so.0 (it uses none of its symbols).
juyin-learn shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
juyin-learn shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
juyin-learn shouldn't be linked with libm.so.6 (it uses none of its symbols).
juyin-learn shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
juyin-learn shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
juyin-learn shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
juyin-learn shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
juyin-learn shouldn't be linked with libdl.so.2 (it uses none of its symbols).
tsa2d32 shouldn't be linked with libgdk-x11-2.0.so.0 (it uses none of its symbols).
tsa2d32 shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
tsa2d32 shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
tsa2d32 shouldn't be linked with libm.so.6 (it uses none of its symbols).
tsa2d32 shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
tsa2d32 shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
tsa2d32 shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
tsa2d32 shouldn't be linked with libgobject-2.0.so.0 (it uses none of its symbols).
tsa2d32 shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
tsa2d32 shouldn't be linked with libdl.so.2 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libgtk-x11-2.0.so.0 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libgdk-x11-2.0.so.0 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libm.so.6 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libgobject-2.0.so.0 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
tsd2a32 shouldn't be linked with libdl.so.2 (it uses none of its symbols).
gcin2tab shouldn't be linked with libgtk-x11-2.0.so.0 (it uses none of its symbols).
gcin2tab shouldn't be linked with libgdk-x11-2.0.so.0 (it uses none of its symbols).
gcin2tab shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
gcin2tab shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
gcin2tab shouldn't be linked with libm.so.6 (it uses none of its symbols).
gcin2tab shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
gcin2tab shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
gcin2tab shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
gcin2tab shouldn't be linked with libgobject-2.0.so.0 (it uses none of its symbols).
gcin2tab shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
gcin2tab shouldn't be linked with libdl.so.2 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libgtk-x11-2.0.so.0 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libm.so.6 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libgobject-2.0.so.0 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libdl.so.2 (it uses none of its symbols).
gcin-tan-toggle shouldn't be linked with libglib-2.0.so.0 (it uses none of its symbols).
tslearn shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
tslearn shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
tslearn shouldn't be linked with libm.so.6 (it uses none of its symbols).
tslearn shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
tslearn shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
tslearn shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
tslearn shouldn't be linked with libdl.so.2 (it uses none of its symbols).
tsd2a shouldn't be linked with libgtk-x11-2.0.so.0 (it uses none of its symbols).
tsd2a shouldn't be linked with libgdk-x11-2.0.so.0 (it uses none of its symbols).
tsd2a shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
tsd2a shouldn't be linked with libgdk_pixbuf-2.0.so.0 (it uses none of its symbols).
tsd2a shouldn't be linked with libm.so.6 (it uses none of its symbols).
tsd2a shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
tsd2a shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
tsd2a shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
tsd2a shouldn't be linked with libgobject-2.0.so.0 (it uses none of its symbols).
tsd2a shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
tsd2a shouldn't be linked with libdl.so.2 (it uses none of its symbols).
gcin-setup-old shouldn't be linked with libatk-1.0.so.0 (it uses none of its symbols).
gcin-setup-old shouldn't be linked with libm.so.6 (it uses none of its symbols).
gcin-setup-old shouldn't be linked with libpangocairo-1.0.so.0 (it uses none of its symbols).
gcin-setup-old shouldn't be linked with libpango-1.0.so.0 (it uses none of its symbols).
gcin-setup-old shouldn't be linked with libcairo.so.2 (it uses none of its symbols).
gcin-setup-old shouldn't be linked with libgmodule-2.0.so.0 (it uses none of its symbols).
gcin-setup-old shouldn't be linked with libdl.so.2 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libmng.so.1 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libjpeg.so.62 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libpng12.so.0 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libz.so.1 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libXrender.so.1 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libXrandr.so.2 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libXft.so.2 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libfontconfig.so.1 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libXext.so.6 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libSM.so.6 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libICE.so.6 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libdl.so.2 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libpthread.so.0 (it uses none of its symbols).
libqgcin.so shouldn't be linked with libm.so.6 (it uses none of its symbols).
 

本人已不在此站活動
2
Promote 0 Bookmark 02007-11-20quote  

這個我也有點好奇,用 pkg-config 的本來就會這樣?

分開寫?不要通通都直接用 gtk+-2.0?
 

eliu
3
Promote 0 Bookmark 02007-11-20quote  

gcin-setup-tab shouldn't be linked with libpango

GTK 不是都用 pango 去 draw string,怎麼可能沒有用到。

本人已不在此站活動
4 如何把多餘的 linked libraries 幹掉?
Promote 0 Bookmark 02007-11-20quote  
caleb

以 gcin-gb-toggle 為例,根本只用到 gdk 沒用到 gtk,去掉多餘 link 檔案可以大幅縮減。 

[edt1023@lgj ~]$ pkg-config --libs gdk-2.0
-Wl,--rpath -Wl,/usr/local/lib -pthread -L/usr/local/lib -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lcairo -lpangoft2-1.0 -lfontconfig -lfreetype -lz -lpango-1.0 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -liconv -lX11 -lXfixes

跑不掉!微笑

 

ps.我現在在 fbsd 下,所以會有 -liconv。

caleb
5
Promote 0 Bookmark 02007-11-21quote  

修正 LDFLAGS 後,使用上完全沒問題,不過檔案沒變小多少(全都有變小就是了)

看來不管那些 warning messages 是比較划算的,沒必要為了小一點點而大改 configure / Makefile

底下是修改 LDFLAGS 前後的 stripped binary 大小變化

gcin           169268 -> 169236
gcin-gb-toggle   7720 ->   7440
gcin-message     8272 ->   7992
gcin-setup      60392 ->  60232
gcin-setup-tab  55776 ->  55744
gcin2tab        14028 ->  13940
gtab-merge      11120 ->  10840
juyin-learn     18856 ->  18632
phoa2d          10168 ->   9936
phod2a          14312 ->  14184
sim2trad        10004 ->   9116
tsa2d32         13100 ->  12868
tsd2a            7676 ->   7396
tsd2a32          7676 ->   7396
tslearn         31140 ->  31076
im-gcin.so      10108 ->  10052
libqgcin.so     28892 ->  28596

eliu
6
Promote 0 Bookmark 02007-11-21quote  
savage
7
Promote 0 Bookmark 02007-11-21quote  

我記得(印象中),沒用到的 link 也不會真的去 link,所以對可執行檔大小及執行速度的影響很小。

而且,ldd 是 recursively 列出 DSO,有些並不是直接用到的。
 

cht電腦資訊gcin
adm Find login register
views:21866