libnl移植到ARM Linux

libnl简介

  libnl是为了方便应用程序使用netlink接口而开发的一个库。这个库为原始netlink消息传递以及不同的netlink family专用接口提供了一个统一的接口。libnl2.0的API与libnl1.0的API并不兼容。如果您的应用程序不做相应调整,将可能导致不可用。

  移植libnl1.1是hostapd的移植的一部分。hostapd使用的libnl库为1.x版本,2.0版本的API与1.0的并不兼容,故这里移植1.1版本,但2.0移植方式相同。

开发环境

  Ubuntu 16.04
  
  arm-linux-gnueabi-gcc version 4.6.3

  开发环境不一定是我这配置,只要是Linux操作系统,和ARM对应的交叉工具链就可以。

目标环境

  中兴ZX902C(Cotex A9)

  内核版本:3.0.1

移植步骤

  1.从libnl官网下载libnl-1.1.4源码。
  
  2.执行下面命名解压缩:

tar zxvf libnl-1.1.4.tar.gz

  3.进入刚解压的目录cd libnl-1.1.4,执行下面指令,做相应的配置:

./configure --prefix=$(pwd)/__install --enable-shared --enable-static

其中--prefix=$(pwd)/__install指定了编译出来的库存放的路径,我一般将其放在当前目录下的__install目录下。当然,很多人都放在了/usr/local/arm/目录下,但我认为这样不仅会污染系统文件系统,在管理上也不方便,时间长了也忘记了是哪个库的文件了,用的时候又要重新编译。

  4.执行下面命令,编译库:

make CC=/home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc

其中CC=/home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc指定交叉工具链。

  5.执行下面命令,将编译好的库文件拷贝到指定目录:
  

make install

如下图所示在当前目录下的__install目录下生成了头文件和库文件
这里写图片描述

  6.include下文件在编译程序的时候会用到,而lib下在程序运行时会用到。故在移植hostapd的时候需要指定include的路径,需要将lib下文件拷贝到开发板中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值