2013年1月27日 星期日

ld: library not found for -lxxxxxx

這是gcc linker找不到可用的lib出現的錯誤訊息,只要找到該lib在你主機上的位置(前提是你已經有正確安裝完成),把位置丟進LIBRARY_PATH就可以了,不過通常還要加上C_INCLUDE_PATH
export LIBRARY_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/X11/lib
export C_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/X11/include
比如說我現在在mac上要裝ns2,在編譯tk8.5的時候需要X11,X11的東西都放在
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/X11/lib
這個又臭又長的地方,也是可以建立軟連結到 /usr/lib 裡面去,就省去這篇說的使用ldconfig的方式加入新的library位置

linux 套件安裝準則


 作者  Bency (阿邊班西)                                         看板  P_bency
 標題  [記錄] 準則
 時間  Thu Aug 12 02:13:32 2010

☆來源:國父 home.d22.cc

準則:

軟體安裝一律使用 apt,不得用 dpkg -i 獨立安裝 deb,更不得用make install安裝。

Debian 官方 apt 沒有的套件,照以下的優先順序尋找套件安裝。

Win7 上分享無線網路


 作者  Bency (http://班西.tw)                                   看板  P_bency
 標題  [記錄] Win7 上分享無線網路
 時間  Sat Nov  6 17:52:31 2010

以管理員身分打開命令提示字元(Ctrl + Shift + Enter)

輸入 netsh wlan set hostednetwork mode=allow ssid=P_bency key=bency

出現成功訊息後

再輸入 netsh wlan start hostednetwork

然後再到區域連線那共用即可

參考來源 http://www.techbang.com.tw/posts/2080

linux LD_LIBRARY_PATH 新增系統讀lib的位置

在linux上使用者自己編譯套件時可能會需要系統外的套件,常常會碰到明明已經成功安裝了某支library但系統卻找不到,原因是安裝的路徑不在系統預設的路徑上,如果你只是站上的使用者,那只要在環境變數LD_LIBRARY_PATH上加上你新增的路徑即可,用法如下
$ export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/path/to/lib
不過如果你是管理者,需要幫站上安裝新工具,這時強迫大家改自家設定檔就不太OK了,新增系統預設搜尋lib的位置方法如下

2013年1月15日 星期二

把多個單欄的檔案合併輸出成多欄的單一檔案

其實這標題我也不知道要怎麼寫才比較好,意思是把很多個內容只有一個欄位資料的檔案,以欄位為區隔合併成一個多欄的檔案,這是我在分析資料需要畫出比較圖的時候用到的,假設現在兩個檔案內容如下

a.dat:
a1
a2
a3
a4
a5
b.dat
b1
b2
b3
b4
b5
這時我們想把這兩個檔案合在一起,且是以兩個欄位的方式存檔,可以用以下指令完成
$ pr -mt a.dat b.dat
a1 b1
a2 b2
a3 b3
a4 b4
a5 b5
對於需要把數據統整成單一檔案還蠻方便的。 參考來源

補充:
$ join <(nl a.dat) <(nl b.dat) | cut -f2,3 -d ' '
這樣也可以達到一樣的效果(由顏孜羲提供)