openwrt libubox 移植到ARM上

2021-07-03 18:51:51 字數 1325 閱讀 3403

由於專案的需要,需要把openwrt 上的libubox庫移植到arm上,libubox是openwrt的基礎庫,是乙個事件驅動庫,具體的可以到openwrt官網上去了解。

宿主機為 ubuntu 10.04  交叉編譯工具鏈版本為 arm-linux-gcc 4.5.1,目標機為   s3c6410/s5pv210

原始碼為libubox-2014-08-04-dffbc09baf71b294185a36048166d00066d433b5.tar.gz,這個庫依賴json-c 庫,所以要先移植json-c庫(json-c-0.11.tar.gz)。

json-c 移植比較簡單,不作詳細說明,具體步驟如下:

1.解壓原始碼 

2. 修改config.h.in 檔案,去掉如下幾行

/* define to rpl_malloc if the replacement function should be used. */

#undef malloc

/* define to rpl_realloc if the replacement function should be used. */

#undef realloc

3.  ./configure --host=arm-linux  --prefix=/root/softwares/openwrt-a8/json-c

4.  make

5 . make install

執行以上幾個步驟,即可生成庫檔案

libubox的移植,由於libubox沒有configure之類的,需要用cmake生成makefile,cmake如果沒有,請自行安裝。具體的步驟如下:

1.解壓libubox原始碼

2.修改cmakelist.txt檔案,在檔案最開始處加上如下幾句:

#告知當前使用的是交叉編譯方式,必須配置

set(cmake_system_name linux)

#指定c交叉編譯器,必須配置

#或交叉編譯器使用絕對位址

set(cmake_c_compiler "arm-linux-gcc")

#指定c++交叉編譯器

set(cmake_cxx_compiler "arm-linux-g++")

#json-c 標頭檔案的路徑

include_directories("/root/softwares/openwrt-a8/json-c/include/json-c")   

#json-c 庫檔案路徑

link_directories("/root/softwares/openwrt-a8/json-c/lib")

3.make

在原始碼的根目錄即可生成庫檔案

移棋子遊戲

給定乙個有n個節點的有向無環圖,圖中某些節點上有棋子,兩名玩家交替移動棋子。玩家每一步可將任意一顆棋子沿一條有向邊移動到另乙個點,無法移動者輸掉遊戲。對於給定的圖和棋子初始位置,雙方都會採取最優的行動,詢問先手必勝還是先手必敗。第一行,三個整數n,m,k,n表示圖中節點總數,m表示圖中邊的條數,k表...

IPTV時移實現

此處時移指live tv時移功能 終端時移是指使用者可以通過終端的記錄功能,類似錄影機一樣將自己要的電視節目錄製在本地,把收到我資料分成平均的細片,打上標籤,在需要的時候根據標籤進行回放。目前主要還是採用網路時移。網路時移 暫停 同vod一樣,發pause令就可以了 快進 同vodi一樣,發play...

多位尾數前移

首先,理解何為尾數前移問題 例如 乙個整數n的尾數是9,把尾數9移到其前面 成為最高位 後所得的數為原整數n的3倍,這就是尾數前移問題。將其一般化 就是乙個整數n的尾數是q,把尾數q移到其最高位,所得的數為原整數n的p倍 可以採用逆向思維 設n為123 2q,尾數q移到前面變成q123 2,意味著 ...