Examaple
-
如何开发一个自定义应用
一定要在编译好的SDK环境进行
1. 在packet下建立相关的自定义的包mkdir src
touch Makefile
同时在window在开始操作
2. 拷贝一个makefile模板,进行修改
$(eval (callBuildPackage.(call BuildPackage.(callBuildPackage.PKG_NAME))) 当前编译的包需 要再主机内使用
我们可以从packet包 其他的包的Makefile复制来作为模板,在此基础上进行修改,此处用openwrt-17.01.4-17.01.4\package\kunteng\net\adbyby 的Makefile -
系统总Makefile–>package.Makefile—>hello.Makefile
–>src.Makefile 调用关系
3. 进行源码文件中的源码设计与Makefile设计
- hello的 Makefile ,要符合系统的Makefile规范
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk //
PKG_NAME:=hello //包名
PKG_VERSION:=1 //版本
PKG_RELEASE:=1.0 //发行日期
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=utils //放着通用的东西
CATEGORY:=hello //类别
TITLE:=hello test ipk //题头
// DEPENDS:=+libstdcpp //依赖什么包
// URL:=http://www.adbyby.com/ //下载地址
endef
define Package/$(PKG_NAME)/description //描述
hello,my world!
endef
define Build/Prepare //准备些什么东西,在准备的时候要干什么事
mkdir -p $(PKD_BUILD_DIR) //创建一个文件夹,在build_dir目录下
$(CP) ./src/* $(PKD_BUILD_DIR)
endef
define Build/Configure //配置
endef
define Build/Compile //编译过程 ,编译选项,类似gcc
$(MAKE) -C $(PKG_BUILD_DIR) \ // make该目录的包
$(TARGET_CONFIGURE_OPTS) \ //全局的编译属性
CFLAGS="$(TARGET_CFLAGS)" \
CPPFLAGS="$(TARGET_CPPFLAGS)"\
LDFLAGS="$(TARGET_LDFLAGS)"
endef
define Package/$(PKG_NAME)/install //如何安装
$(INSTALL_DIR) $(1)/bin //安装目录放在哪
$(INSTALL_BIN) $(PKG_BUILD_DIR)/hello $(1)/bin/ //安装的bin文件放在哪
endef //放在hello下 还有放在/bin下
$(eval $(call BuildPackage,$(PKG_NAME)))
//表明当前这个编译工具是要在主机上使用
-
在hello目录的Makefile要引起src的 Makefile 进行编译,所以在src 下要创建一个Makefile,此Makefile是编译src里的文件
-
完成,并把它们拖进linux
4. 进行 make menuconfig 的配置
因为config.build的关系,它会自动被加载进menuconfig的菜单栏
-
-
选择对应的应用模块程序,选择 为M 进行模块类型编译
-
‘’M‘’ 代表编译成一个单独的 ipk文件
-
‘’*‘ 代表编译内核里重新编译个镜像
-
保存退出
5. make package/hello/copmile V=s 模块指定编译
6. 编译完成后在 /bin/packages/i386_pentuum4/base 下找到对应的ipk包
-
以上操作在linux中完成
-
把所编译的 hello.ipk 包拿出来
-
下面操作在lede中完成
7. python -m SimpleHTTPServer 8080 wget 方式进行ipk包传递/导入
* scp 方式进行包的传递*
-
scp book@192.168.1.106:/home/book/openwrt-gcc/c----openwrt-17.01.4.-17.01.4/bin/packages/1386_pentium4/base/hello_1-1.0_i386_pentium4.ipk /tmp/
wget 的方式
8. opkg install hello_1-1.0_i386_pentium4.ipk
- 成功