OpenWRT开发之创建软件包
1个回答
展开全部
OpenWRT二次开发时总免不了开发自己的软件包。本文介绍如何在OpenWRT中创建一个新的软件包。
首先创建软件包所在的目录,在openwrt根目录中执行:
这里的mypackages目录和helloworld目录都是新建的,helloworld就是我们本次新建的软件包的包名。我们后续可以将自己创建的包都放在mypackages目录下。
helloworld包的目录结构如下:
即软件包helloworld目录下的Makefile文件。例子以及注释如下:
上面的例子中没有定义 define Build/Compile ,表示使用默认的Compile命令。默认的Compile行为就是在$(PKG_BUILD_DIR)目录下执行make命令。
helloworld.c内容如下:
与helloworld.c同目录的Makefile内容如下:
说明:这里的$(CC)、$(CFLAGS)、$(LDFLAGS)都是由OpenWRT的build系统赋值的,CC就是目标平台对应的交叉编译工具链里的gcc。
在OpenWRT根目录下运行make menuconfig,可以看到多出来一个”Examples —>”菜单,按回车进去后可以看到我们新建的”helloworld” 包。 (从这里也可以看出,在执行make menuconfig时,OpenWRT会自动扫描package目录以及其子目录下所有的包。)
选中这个”helloworld”包。然后再OpenWRT根目录下执行:
此命令即为OpenWRT单package编译命令。
通过log,可以看到我们的包编译成功。编译目录为 build_dir/target-XXXX/helloworld-1.0
如果要再次编译,可以执行:
本文源码见: https://github.com/jian-soft/openwrt-package-example
参考文章:
首先创建软件包所在的目录,在openwrt根目录中执行:
这里的mypackages目录和helloworld目录都是新建的,helloworld就是我们本次新建的软件包的包名。我们后续可以将自己创建的包都放在mypackages目录下。
helloworld包的目录结构如下:
即软件包helloworld目录下的Makefile文件。例子以及注释如下:
上面的例子中没有定义 define Build/Compile ,表示使用默认的Compile命令。默认的Compile行为就是在$(PKG_BUILD_DIR)目录下执行make命令。
helloworld.c内容如下:
与helloworld.c同目录的Makefile内容如下:
说明:这里的$(CC)、$(CFLAGS)、$(LDFLAGS)都是由OpenWRT的build系统赋值的,CC就是目标平台对应的交叉编译工具链里的gcc。
在OpenWRT根目录下运行make menuconfig,可以看到多出来一个”Examples —>”菜单,按回车进去后可以看到我们新建的”helloworld” 包。 (从这里也可以看出,在执行make menuconfig时,OpenWRT会自动扫描package目录以及其子目录下所有的包。)
选中这个”helloworld”包。然后再OpenWRT根目录下执行:
此命令即为OpenWRT单package编译命令。
通过log,可以看到我们的包编译成功。编译目录为 build_dir/target-XXXX/helloworld-1.0
如果要再次编译,可以执行:
本文源码见: https://github.com/jian-soft/openwrt-package-example
参考文章:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询