二、openwrt自定义编译包的过程
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.mkdefine Package/$(PKG_NAME)SECTION:=utils //放着通用的东西CATEGORY:=hello //类别TITLE:=hello test ipk //题头
// DEPENDS:=+libstdcpp //依赖什么包
// URL:=http://www.adbyby.com/ //下载地址
endefdefine Package/$(PKG_NAME)/description //描述hello,my world!endefdefine Build/Prepare //准备些什么东西,在准备的时候要干什么事mkdir -p $(PKD_BUILD_DIR) //创建一个文件夹,在build_dir目录下$(CP) ./src/* $(PKD_BUILD_DIR)
endefdefine Build/Configure //配置
endefdefine Build/Compile //编译过程 ,编译选项,类似gcc$(MAKE) -C $(PKG_BUILD_DIR) \ // make该目录的包$(TARGET_CONFIGURE_OPTS) \ //全局的编译属性CFLAGS="$(TARGET_CFLAGS)" \CPPFLAGS="$(TARGET_CPPFLAGS)"\LDFLAGS="$(TARGET_LDFLAGS)"
endefdefine 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
- 成功
二、openwrt自定义编译包的过程相关推荐
- 【自制yum仓库一】自定义RPM包
当我们需要自己制作yum仓库的时候,第一步应该是准备rpm包.一般rpm包的来源有两种办法:1.通过别人的镜像拉取rpm包 :2.自己通过源码包来制作rpm包:下面来讲怎么通过源码包自定义RPM包. ...
- GDAL源码剖析(二)之编译说明
一.简单的编译 1.使用VisualStudio IDE编译 首先进入GDAL的源代码目录,可以看到有几个sln为后缀的文件名,比如makegdal10.sln,makegdal80.sln,make ...
- golang 导入自定义包_二、Go基本命令及定制自定义第三方包
一.二进制Package 1.以package main 作为文件的第一行 2.有且只有一个main函数,如echo.go所表示 3.go的源码要放在GOPATH的src下 echo.go的内容 pa ...
- 【理解 Cilium 系列文章】(二) 理解网络数据包的流转过程
Cilium 作为近两年最火的云原生网络方案,可谓是风头无两.作为第一个通过 ebpf 实现了 kube-proxy 所有功能的网络插件,它的神秘面纱究竟是怎样的呢?本系列文章将带大家一起来慢慢揭晓 ...
- java打包后发布找不到jsp,tomcat编译jsp找不到自定义的包解决方案
当前位置:我的异常网» Java Web开发 » tomcat编译jsp找不到自定义的包解决方案 tomcat编译jsp找不到自定义的包解决方案 www.myexceptions.net 网友分享于 ...
- 小白的proxmox ve(pve)打造AIO(all in boom)折腾日记 (五)openwrt虚拟机建立(包括openwrt系统编译)
打造一台pve主机,软路由功能可以说是必不可少的,我这里选择使用openwrt系统. 一.准备系统镜像 网上的openwrt系统可以说是五花八门,可以选择直接下载官方的固件,也可以去恩山无线论坛中找到 ...
- 初探 Go 的编译命令执行过程
引言 Go 语言这两年在语言排行榜上的上升势头非常猛,Go 语言虽然是静态编译型语言,但是它却拥有脚本化的语法,支持多种编程范式(函数式和面向对象).Go 语言最最吸引人的地方可能是其原生支持并发编程 ...
- linux下下载openwrt源码,OpenWrt下载编译
不想啰嗦直接肝,依次执行: git clone git://github.com/openwrt/openwrt.git cd openwrt ./scripts/feeds update -a ./ ...
- OpenWrt 固件编译教程
一.编译环境准备 编译平台 阿里云 Ubuntu 20.04.5 LTS 安装编译环境依赖 sudo apt-get -y install build-essential asciidoc binut ...
最新文章
- 为什么我不建议你用阿里巴巴Java规范,而使用 Google Guava 编程?
- php上传文件后定时删除,PHP根据条件定时删除文件代码
- 「机器学习速成」过拟合的风险和泛化
- Python拼接字符串的7种方法总结
- iOS: 在代码中使用Autolayout (2) – intrinsicContentSize和Con
- “温室里的花朵”也要直面困难
- 前端小知识点(4):JS 运行机制和存储
- CCNA-第八篇-OSPF-上
- oracle基本的查询语句,Oracle基本查询语句
- oracle 表(下)
- 闭包、作用域链、函数
- VSFlexGrid控件
- 基于Java毕业设计新能源汽车租赁管理系统源码+系统+mysql+lw文档+部署软件
- 英文科技论文写作与学术报告Lecture 4习题答案
- modbus调试团结_团结:打破垃圾收集规则
- Strtok的使用方法
- 七夕送什么礼物最实用?送人绝对不会出错的礼物值得买
- linux终端ppt,[转]TPP:linux终端下的ppt
- java后端开发(九):mybatis的威力加强版之mybatis-plus
- VS Code的背景图老是黑白灰等?放一张喜欢的图片当做背景图敲代码不更舒服么