由於專案的需要,需要把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,意味著 ...