openWrt编译第一个“Hello_world”应用程序IPK安装包
安装openWrt固件
我用的是ubuntu,首先需要在ubuntu上安装openWrt的固件,至于安装固件的步骤这里就不多说了。
hello_world程序准备
我上一篇博客中有关于共享文件夹的设置,在windows中新建一个目录,可以和ubuntu共享一个文件夹,不需要用winscp把windows上的文件再传输到ubuntu上,这中方法还是比较麻烦的;
使用notepad++编写一个简单的 hello_world.c 程序,然后将 hello_world.c 文件保存在 @/hello_world/src 路径中:
#hello_world.c文件#include <stdio.h>int main(char argc,char *argv[])
{int i = 0;while(1){printf("Hello world!!!%d\n",i);//打印内容i++;if(i>10) i=0;sleep(1);}return 0;
}
编写Makefile,然后将 Makefile文件保存在 @/hello_world/src 路径中。:
all:hello_worldhello_world:hello_world.o$(CC) $(LDFLAGS) hello_world.o -o hello_worldhello_world.o:hello_world.c$(CC) $(CFLAGS) -c hello_world.cclean:rm *.o hello_world
编写Makefile,然后将 Makefile文件保存在 @/hello_world 路径中。:
include $(TOPDIR)/rules.mkPKG_NAME:=hello_world
PKG_VERSION:=1.0
PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)include $(INCLUDE_DIR)/package.mkdefine Package/hello_worldSECTION:=baseCATEGORY:=UtilitiesTITLE:=Hello world -prints a hello world message
endefdefine Package/hello_world/descriptionIf you can't figure out what this program does, you're probablybrain-dead and need immediate medical attention.
endefdefine Build/Preparemkdir -p $(PKG_BUILD_DIR)$(CP) ./src/* $(PKG_BUILD_DIR)/
endefdefine Package/hello_world/install$(INSTALL_DIR) $(1)/bin$(INSTALL_BIN) $(PKG_BUILD_DIR)/hello_world $(1)/bin/
endef$(eval $(call BuildPackage,hello_world))
这三个文件编写好之后,将整个 hello_world 文件夹复制到安装openWrt的根目录下,然后回到根目录执行:
make menuconfig
接下来会进入到一个界面:
执行:
Utilities --->
<M> hello_world.................... Hello world -prints a hello world message
之后保存退出;
执行指令: make V=s
等待编译完成后,我们就可以在以下路径找到生成的安装包
“lede_AR9331_zhuotk_source_32bit/bin/packages/mips_24kc/base/hello_world_1.0_mips_24kc.ipk ”。
关于安装包:
openwrt 一个比较重要的特点就是它采用 ipk 包的形式安装软件。有点像是 windows 下面的安装包一样,用户只需用简单的命令就可以将 ipk 安装包安装到 openwrt 系统中,非常方便。
执行 :cp /home/ibgg/lede_AR9331_zhuotk_source_32bit/bin/packages/mips_24kc/base/hello_world_1.0_mips_24kc.ipk /mnt/hgfs/shared/
将ipk包复制到共享文件夹中,然后用winscp传输到装有openWrt的开发板中
安装应用程序
上一步将ipk安装包复制到开发板上的系统中,加入放在了/tmp目录下,则执行 opkg install /tmp/hello_world_1.0_mips_24kc.ipk
安装包安装完成后,直接在串口终端输入:hello_world
然后会看到:
终端已经开始打印信息,可以按ctrl+c退出;
总结
之后我在想,为什么还要在ubuntu上安装交叉编译环境,而不是直接在openWrt的开发板上生成ipk安装包,这样的话就减少了文件传来传去的麻烦,后来我猜测:
1.交叉编译环境需要较大的内存,本身开发板就属于商用型的产品,那么肯定需要将有限的内存用在刀刃上,节省内存空间用于只跑程序;
2.编译生成的ipk可以在Ubuntu上试运行,等没问题的话就可以批量生产将ipk安装在产品上。
openWrt编译第一个“Hello_world”应用程序IPK安装包相关推荐
- 基于ipk安装包形式移植helloworld驱动模块到openwrt系统
在根据网上相关教程对openwrt系统进行helloworld驱动模块的文件进行添加的过程中,由于网上相关问题所使用的openwrt系统的版本较早,不具备较强的参考性,因此记录解决办法. 一.环境 o ...
- 制作AE(ArcGIS Engine 打包)开发的应用程序的安装包
利用InstallShield制作AE(ArcGIS Engine 打包)开发的应用程序的安装包 以下是个人学习的一些心得,由于本人对InstallShield也是刚刚接触,可能有些地方不是那么合理, ...
- 利用InstallShield制作AE(ArcGIS Engine 打包)开发的应用程序的安装包
原文:http://blog.csdn.net/swfcsunboy/article/details/2314249 利用InstallShield制作AE(ArcGIS Engine 打包)开发的应 ...
- 用VS.NET2003制作WEB应用程序的安装包
用VS.NET2003制作WEB应用程序的安装包 --------------------------------------------------------------------------- ...
- inno setup打包的安装包如何在卸载完程序后可以继续安装_这两个方法就够了!快速制作Python程序Windows安装包...
点击关注州的先生 编程应用.实战教程,不容错过 /00/ 前言 我们使用Python可以编写很多提高工作和学习效率的小工具,在编写完之后,如果我们想将其分享给更多的人使用,那么最便捷的方法就是将其打包 ...
- 使用VS 2019制作桌面程序的安装包
使用VS 2019制作桌面程序的安装包 前言 文章中是以.NET 平台下使用C#语言开发的WinForm桌面程序为例,说明安装包制作流程.但根据官方文档的说明,Windows下的其他语言(C++/VB ...
- 获取Android手机已安装应用程序的安装包
手把手教你获取Android手机已安装应用程序的安装包 前言: 某天临时访问了一个网址然后下载了一个APP,过了一段时间想要将这个APP安装在其他手机上面或者是介绍给其他小伙伴安装的时候发现该应用在应 ...
- 发布文件打包springboit_程序安装包咋制作的?Qt程序打包三部曲,从应用程序到安装包...
前言 本章节主要是讲解下如何打包Qt程序.Qt使用自带的windeployqt 处理依赖库生成exe来发布软件. 准备exe 1.程序要想发布,在编译器编译一定要选择"release&quo ...
- python飞机大战源代码-制作python程序windows安装包(飞机大战源码)
本文以飞机大战源码为例: 1.首先使用pyinstaller -w xxx.py打包 -w的意思是不显示命令行:飞机大战源码由多个.py文件以及一些图片,音乐文件组成,我们将main.py打包, 其他 ...
最新文章
- TFS修改工作区映射区
- nginx开发从入门到精通 http://tengine.taobao.org/book/
- 字节输出流写多个字节的方法
- 2014 网选 上海赛区 hdu 5047 Sawtooth
- jsf 后台参数到页面_JSF:直接从页面将参数传递给JSF操作方法,这是JavaEE 6+的一个不错的功能...
- 解决int和Integer不能互转
- 无法执行dex:多个dex文件定义了Lcom / myapp / R $ array;
- BP算法:原理推导数据演示项目实战1(转)
- Windows2000资源工具包工具对于管理任务2
- 发现一个Java文件.class在线反编译的简单好用的网址
- 华为服务器系统启动项,服务器设置开机启动项
- 卸载oracle11g全部,完全卸载oracle11g步骤:
- Feem(局域网文件传输工具)官方版
- vue3 路由跳转,打开新页面
- 字幕集合保存为srt文件
- 万里无云 满天繁星
- 【人工智能】对贝叶斯网络进行吉布斯采样
- 如何批量调整多个视频文件的尺寸大小
- 我看“暴风影音”事件
- h3c路由器和三层交换机之间连接配置
热门文章
- Struts 2 in Action 中文版出版了!
- 测试CarbonData
- html怎么添加视频链接,微光如何添加视频链接
- 360周鸿祎:没有人比我更懂互联网安全
- 基于Springboot实现在线打印平台
- Java汽车租赁管理系统
- Font '宋体' is not available to the JVM. See the Javadoc for more details.
- 梦三花重金修改服务器,可重置狐金踏云花姐
- 未来教育计算机一级一本通光盘,未来教育·全国计算机等级考试笔试·上机一本通:三级网络技术(2011年考试专用)(附CD光盘1张)...
- 开发小程序用php框架,微信小程序框架目前比较火的是?