[問題]請問關於lib的問題

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

[問題]請問關於lib的問題

文章R208 » 週二 12月 31, 2002 9:16 am

想要請教關於lib這方面的觀念......
目前放在embedded system裡面的tool....
都是先在自己的desktop(Red hat 7.2)上面make好後再丟到embedded裡面.....
可是一開始都會有無法執行該程式的問題.....
後來發現原來是少掉了lib......
於是將tool要用到的lib從OS裡面copy到embedded......
程式確實可以執行沒有錯......不過有些lib還真的很大......
我參考別人的embedded可是並沒有很多的lib在裡面......
即使有lib也都很小(小於500K)......
而且我下ldd tool_name發現他們的tool都不需要用到lib......
根據我所找的資料.....認為關鍵應該在於uclibc這個tool上面........
目前已經download下來並在研究當中.......
一來想要請問前輩們.....這樣的方向對嗎????
二來想要請問lib的觀念......為什麼有的需要用lib有的不用呢?????
我 ldd desktop的tool來看.....幾乎都要用到lib......
感謝各位前輩的指導........
Ben
R208
 

re:[問題]請問關於lib的問題

文章saturn » 週二 12月 31, 2002 9:47 am

lib大小的問題我猜是他們有作strip你沒作!
至於用他們的tool用ldd沒有看到link到某些lib的原因,
應是"static"編譯造成的,在編譯時就將lib link到程式中。
若有誤導,請大家指正!
謝謝!

Saturn
saturn
可愛的小學生
可愛的小學生
 
文章: 11
註冊時間: 週二 12月 10, 2002 4:10 pm

re:[問題]請問關於lib的問題

文章chester » 週四 1月 02, 2003 10:46 am

saturn 寫:lib大小的問題我猜是他們有作strip你沒作!
至於用他們的tool用ldd沒有看到link到某些lib的原因,
應是"static"編譯造成的,在編譯時就將lib link到程式中。
若有誤導,請大家指正!
謝謝!

Saturn


講的都對....也都是可能的情況!

在許多Embedded system 中,大部分的應用程式都是使用
static linked 的方式產生的,其實這各有其用處,也各有其優缺點.

所使用的 C library 就會很重要,就比如 glibc and uclibc 來看好了.
一個是用於一般的 library ,後者是強調 library 是較小的,而且所提供的
function 並不像前者那麼完整.本身的目的就不太一樣了.
當然,不管是選 dynamic/static linked 的方式都會比前者所產生出來的
檔案來得小.
使用 glibc 會造file size /run time memory size 比較大的原因之一是
會去 initialize 本身的 function(所以它會去 call 一些我們很少用到的
function).
CK.
頭像
chester
版面大總管
版面大總管
 
文章: 56
註冊時間: 週四 11月 14, 2002 9:42 pm
來自: taipei


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客