談一下我寫Linux程式的經驗
大概是去年發生的事,只是因為blog最近才開所以現在才發。
由於Linux可免費取得,且可用跟Windows相同的硬體,所以我有裝一套Linux來玩,開發同人遊戲或寫程式時,也常在Windows版以外順便做個Linux版。
事情是這樣,我當時用的發行版是Ubuntu 8.04,公司用的是Debian 4,在Ubuntu 8.04 build了一個程式想說拿到Debian 4上執行看看,結果沒辦法,會跳找不到stack_chk_fail這個符號的訊息。
用objdump指令一查發現這個符號是glibc 2.4版以上才有,Debian 4的glibc是2.3版。
後來找到一個方法可正常執行,就是自己定義一個符號如下
void stack_chk_fail(){
return;
}
build出來就沒有glibc 2.4了,可以在Debian 4執行。
如果在Debian 4 build,在Ubuntu 8.04不會有問題。
看來要發佈的程式要在較舊的發行版build,才能在比較多環境執行,也要記得用objdump檢查一下。
有一就有二、三,待續。
2010年5月30日
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言