“第二课--OpenWRT 应用开发入门”的版本间的差异
(Created page with "{| style="width: 800px;" |- | 本节主要介绍如何在openwrt下进行开发,并将程序在microWRT上运行。 ==编译SDK== 搭建编译环境在openwrt固件编译...") |
853387039@qq.com(讨论 | 贡献) (→开发程序) |
||
(未显示另一用户的1个中间版本) | |||
第11行: | 第11行: | ||
会看到如下图形界面 | 会看到如下图形界面 | ||
− | [[File: | + | [[File:1.jpg|800px|thumb|center|Configuration Window]] |
选中 [*]Build the OpenWrt SDK,保存退出, 然后用下面程序进行编译。 | 选中 [*]Build the OpenWrt SDK,保存退出, 然后用下面程序进行编译。 | ||
第30行: | 第30行: | ||
看到如下界面,我们接下来就要在package这个目录下做操作了。 | 看到如下界面,我们接下来就要在package这个目录下做操作了。 | ||
− | [[File: | + | [[File:2.jpg|800px|thumb|center]] |
2. 开发hello wrold的软件包 | 2. 开发hello wrold的软件包 | ||
第39行: | 第39行: | ||
$cd helloworld | $cd helloworld | ||
如下图所示: | 如下图所示: | ||
− | [[File: | + | [[File:3.jpg|800px|thumb|center]] |
(3)在helloworld目录下,创建新目录 src,并进入到src目录, | (3)在helloworld目录下,创建新目录 src,并进入到src目录, | ||
第48行: | 第48行: | ||
$touch Makefile | $touch Makefile | ||
− | [[File: | + | [[File:4.jpg|800px|thumb|center]] |
$vim helloworld.c | $vim helloworld.c | ||
第74行: | 第74行: | ||
$touch Makefile | $touch Makefile | ||
如下图所示: | 如下图所示: | ||
− | [[File: | + | [[File:5.jpg|800px|thumb|center]] |
makefile 文档 | makefile 文档 | ||
(5)下面就是编译了,回到SDK的顶层,也就是下面这个目录: | (5)下面就是编译了,回到SDK的顶层,也就是下面这个目录: | ||
− | [[File: | + | [[File:6.jpg|800px|thumb|center]] |
$make V=s | $make V=s | ||
第88行: | 第88行: | ||
我们可以将对应的二进制文件直接传到microWRT上运行,二进制文件在下面目录下: | 我们可以将对应的二进制文件直接传到microWRT上运行,二进制文件在下面目录下: | ||
− | [[File: | + | [[File:7.jpg|800px|thumb|center]] |
将helloworld上传到WRTnode上 | 将helloworld上传到WRTnode上 | ||
− | [[File: | + | [[File:8.jpg|800px|thumb|center]] |
− | + | (7)在MicroWRT开发板上执行 | |
执行 helloworld 查看程序的效果。 | 执行 helloworld 查看程序的效果。 | ||
$./helloworld | $./helloworld | ||
出现打印信息: | 出现打印信息: | ||
− | [[File: | + | [[File:9.jpg|800px|thumb|center]] |
− | |||
|} | |} |
2015年4月3日 (五) 04:16的最新版本
本节主要介绍如何在openwrt下进行开发,并将程序在microWRT上运行。 编译SDK搭建编译环境在openwrt固件编译的文档里有详解,我们要做的就是在它基础上编译出一个自己的OpenWrt开发环境。 1. 在源码的openwrt目录下,执行 $make menuconfig 会看到如下图形界面 选中 [*]Build the OpenWrt SDK,保存退出, 然后用下面程序进行编译。 $make V=s 2. 编译完成以后,在openwrt/bin/ramips我们会看到 OpenWrt-SDK-ramips-for-linux-i686-gcc-4.8-linaro_uClibc-0.9.33.2.tgz.bz2压缩包 (依照你的虚拟机不同而不同)。这个就是我们编译好的OpenWRT SDK环境。 我们将在它下面来做OpenWrt软件包的开发。 下面来解析一下我们的SDK环境的含义, 可以从名称上看出,target system是ramips,host system是Linux-i686, 使用的编译工具以及库是 gcc-4.8-linaro_uClibc-0.9.33.2 开发程序1. 解压,并进入SDK $tar -jxvf OpenWrt-SDK-ramips-for-linux-i686-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2 $cd OpenWrt-SDK-ramips-for-linux-i686-gcc-4.8-linaro_uClibc-0.9.33.2 $ls 看到如下界面,我们接下来就要在package这个目录下做操作了。 2. 开发hello wrold的软件包 (1)进入package目录: $cd package (2)在package目录下创建helloworld目录,并进入helloworld目录: $mkdir helloworld $cd helloworld 如下图所示: (3)在helloworld目录下,创建新目录 src,并进入到src目录, 我们要在src目录下来写我们的hellowrold.c以及编译helloworld.c所需要的Makefile文件。 $mkdir src $cd src $touch helloworld.c $touch Makefile $vim helloworld.c #include <stdio.h> #include <unistd.h> int main(void) { printf("Welcome to microWRT, have a fun !!! \n"); return 0; } $vim Makefile #build a Makefile for hellowrold.c helloworld: helloworld.o $(CC) $(LDFLAGS) helloworld.o -o helloworld helloworld.o: helloworld.c $(CC) $(CFLAGS) -c helloworld.c clean: rm *.o helloworld (4)编写Makefile,这个Makefile文件是给OpenWRT读的。是用来生成软件包的, 在上一步中我们写的Makefile是为了编译helloworld.c的,两个Makefile不同, 也不在同一层目录下。在上一步中我们是在src目录下,现在我们要编写的Makefile要在上层目录, 既是helloworld目录下 $cd ../ $touch Makefile 如下图所示: makefile 文档 (5)下面就是编译了,回到SDK的顶层,也就是下面这个目录: $make V=s 编译过程会在build_dir目录下完成,生成的ipk包,在当前目录下的 bin/ramips/packages下的helloworld_1_ramips_24kec.ipk (6)pandorabox固件和 microWRT系统结构不一致,会导致此ipk包无法安装,为了解决这个问题, 我们可以将对应的二进制文件直接传到microWRT上运行,二进制文件在下面目录下: 将helloworld上传到WRTnode上 (7)在MicroWRT开发板上执行 执行 helloworld 查看程序的效果。 $./helloworld 出现打印信息:
|