OpenWrt SDK 编写交叉编译Makefile的简单方法

本文介绍了如何使用Ubuntu和OpenWrt SDK将Redsocks2程序交叉编译为ipk安装包。通过示例详细解析Makefile的编写步骤,包括设置源码获取、编译目录、依赖库和安装路径等关键部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你在浏览github的时候发现一个很好的Linux c语言程序,在桌面平台编译一下发现很好用,这时你想把它移植到OpenWrt平台上放到路由器上使用,那么要是能把它编译成ipk文件直接安装到路由器上就好了。下面就以redsocks2这款软件为例来介绍使用Ubuntu交叉编译redsocks2 ipk安装包的Makefile写法

选择Redsocks2作为例子的原因是redsocks这个程序只需运行一行make就可以开始执行编译,没有复杂的编译时配置,并且编译完成之后会生成一个名为redsocks2的可执行文件,把这个文件拷贝出来到磁盘的其他地方都可以运行。也就是说,redsocks2是一个编译起来非常容易的程序。编译完成只需获得一个可执行文件就可以开始用了。

下面先在Ubuntu16.04系统上观察它的编译过程

首先我们从github上克隆redsocks2的源码

git clone https://github.com/semigodking/redsocks.git

克隆结束之后安装一个依赖库libevent2,不然编译的时候会报错“fatal error: event2/event.h: 没有那个文件或目录”

sudo apt-get install libevent-dev

然后观察一下现在的redsocks2目录

然后执行make,gcc就开始编译了,编译完成后再观察这个目录,就会发现多出一个redsocks2的可执行文件,我们就可以把这个可执行文件拷贝出来然后运行使用了

在Ubuntu上很简单的就编译完成了redsocks2,那么在OpenWrt的SDK上如何编译成ipk呢

首先先下载OpenWrt的SDK,这里也WNDR4300路由器为例

下载完毕之后使用

tar xjf OpenWrt-SDK-ar71xx-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2
解压这个tar包,之后进入SDK的主目录,在package目录下新建一个名为redsocks2的目录,然后开始新建一个Makefile文件,内容如下

include $(TOPDIR)/rules.mk


PKG_NAME:=redsocks2
PKG_VERSION:=0.66
PKG_RELEASE:=1

PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值