在某些情況下我們會想要把一些函數或變數隱藏起來,不要讓它們出現在 symbol table 裡。
static
將全域變數或函數宣告成 local,只有該 object file 內的 function 看得到它。有 static 的話會無視 visibility 屬性宣告。
__attribute__((visibility ("hidden")))
全域變數或函數宣告預設是宣告成 global,加上 visibility 屬性後可見性設定為隱藏。編譯期間會標示成 global,但名稱會變成 .hidden function。最後連結產生 shared object 的時候該 symbol 不會出現在 dynamic symbol table,但是會在 symbol table 中出現且標示為 local。如果要做到完全隱藏,產生 shared object 以後要 strip 拔掉 symbol table。
-fvisibility=hidden
同 __attribute__((visibility ("hidden"))),不過這是從編譯器的命令列參數,等於是設定預設的 visibility。
2013年10月24日 星期四
2013年10月17日 星期四
DEB 套件 control 檔 template
Package:
Version:
Architecture:
Maintainer:
Installed-Size:
Depends:
Pre-Depends:
Recommends:
Suggests:
Breaks:
Replaces:
Provides:
Section:
Priority:
Multi-Arch:
Homepage:
Description:
2013年10月15日 星期二
hplip plugin 備用 mirror
hplip 安裝、設定印表機的時候會到 www.openprinting.org 去抓 hplip-x.xx.x-plugin.run。萬一這個網站掛了,可以到 http://hplipopensource.com/hplip-web/plugin/ 抓一樣的檔案來用。
Debian Wheezy 收錄的是 3.12.6
Debian Wheezy 收錄的是 3.12.6
2013年10月4日 星期五
xboxdrv 模擬 XBOX360 手把
為了對付某些只吃 XBOX360 手把的遊戲(Runner2),我們需要 xboxdrv 將我們的 xpad 相容手把偽裝成正牌 XBOX360 手把。
046d:c21f 是 Logitech F710 Wireless Gamepad,請自行代換其 USB device ID(用 lsusb 查)。
$ sudo xboxdrv --silent --type xbox360 --device-by-id 046d:c21f --mimic-xpad --detach-kernel-driver
046d:c21f 是 Logitech F710 Wireless Gamepad,請自行代換其 USB device ID(用 lsusb 查)。
2013年10月1日 星期二
tsocks 掛 SOCKS proxy
雖然不是所有的網路程式都有內建 SOCKS proxy 支援,但我們可以透過 tsocks 讓任何程式走 SOCKS proxy 進行連線。
一般 distro 應該都有附,設定也只需要改 /etc/tsocks.conf、指定 SOCKS server 而已。
執行程式的時候只要在前面加個 LD_PRELOAD=/usr/lib/libtsocks.so 讓連結器優先載入 tsocks 的 shared object,就可以讓目標程式使用指定的 SOCKS proxy 連線。
一般 distro 應該都有附,設定也只需要改 /etc/tsocks.conf、指定 SOCKS server 而已。
執行程式的時候只要在前面加個 LD_PRELOAD=/usr/lib/libtsocks.so 讓連結器優先載入 tsocks 的 shared object,就可以讓目標程式使用指定的 SOCKS proxy 連線。
訂閱:
文章 (Atom)