1. 程式人生 > >openwrt下增加package 編譯成新的版本

openwrt下增加package 編譯成新的版本

一   瀏覽openwrt目錄結構

├── bin          #儲存編譯後最終的二進位制檔案;

├── build_dir   #原始碼編譯目錄

├── dl           #下載後的原始碼包

├── docs         #可生成openwrt說明文件,文件也可以到openwrt網站下載

├── feeds        #script/feeds指令碼生成,用於管理應用/原始碼包的源

├── include      #模組化的makefile供其他主幹makefile引用

├── package     #軟體包原始檔目錄

├── qca          #qca新增的原始檔目錄

├── scripts      #工具指令碼

├── staging_dir #工具/工具鏈安裝目錄及編譯過程的一些中間檔案或標頭檔案等

├── target      #目標平臺相關程式碼

├── tmp          #臨時檔案,包括依賴關係,時間戳等

├── toolchain    #工具鏈原始檔

└── tools        #host工具原始檔

二 在package目錄下新建

1進入工程的package目錄     cd/home/caoyang/ta321-70/package 2然後mkdir hello,cd hello,mkdir src,cd src,vihelloworld.c 和Makefile
這2個Makefile是不一樣的上面一個是openwrt用來尋找編譯目標,下面一個是用來編譯helloworld.c的 3/src目錄Helloworld.c內容如下:

4/src  Makefile 內容如下:


5

/hello目錄下的Makefile內容如下:

主要有include $(TOPDIR)/rules.mk 標頭檔案;

和PKG_NAME:=目錄名、PKG_VRSION版本號等巨集變數,下面就可以直接引用這些變數

還有軟體包的定義、準備方法、編譯、安裝

最後使用eval函式

參考部落格:

編譯單獨的package命令:make package/包名/compile

比如:make package/hello/compile V=99

make menuconfig


最後生成映象版本:make target/install V=s