2012-02-08 33 views
1

我很喜歡嵌入式系統。我正在使用一個套件,TS-7390,它使用了ARM9。 我設法爲它編譯一個應用程序。我的問題是我如何使用共享庫進行編譯。我需要在主機上有圖書館嗎?使用共享庫進行交叉編譯

回答

3

這取決於共享庫的使用方式。如果應用程序與庫一起編譯,就好像共享庫始終鏈接一樣,是的,您需要在主機上使用它。如果通過dlopen動態加載共享庫,則主機上不需要它。在這兩種情況下,你也需要目標庫。

1

在交叉編譯應用程序之前,您還需要交叉編譯共享庫。

2

簡而言之:是的。

讓我解釋一下爲什麼。當您設置交叉編譯環境時,您需要使頭文件和庫都可用,因爲在鏈接編譯器時會檢查所有符號是否已解析。

正如您所想象的,只要您的程序不使用libc,交叉編譯器是不夠的。在這種情況下,您還需要一個擁有所有必需文件(標題,庫等)的地方。由於處理所有依賴關係可能非常耗時,因此通常最好使用某種工具或發行版爲您執行此操作。

例如,我使用OpenEmbedded,這需要一點時間才能學會,但在需要處理庫時可以幫助您很多。