手动编译移植库/软件的一般方法

手动编译移植库/软件的一般方法

经常需要移植各种软件包,标准的做法是使用发行版定制工具,如Yocto,详见Yocto的使用实例。但有些情况下,我们不得不手动去移植。
本文以移植openobex1.3为例,展现了移植的方方面面。
参考:http://blog.csdn.net/hclydao/article/details/51451725

1.理清依赖关系

  • 我们为了获得目标库/程序,往往需要移植数个被依赖的库。以openobex1.3为例:
openobex
    |
    |--bluez-libs
    |__bluez-utils
            |
            |--libusb
            |__glib
            |   |__zlib
            |   |
            |   ?//此处视版本而定,有时glib会和dbus互相依赖
            |__dbus
                |__expat    
  • 通过网络资料可以知道各个库的依赖关系,如果网上没有也没关系,可以先编译,通过报错信息也可获知依赖内容

2.确定各个库的版本

  • 这是最讲究的部分,库的版本直接决定了移植是否能够成功。一般原则如下
    • 库的版本发布时间最好比开发环境稍早几年,比如开发板的内核是3.1x版本的,则bluez适合使用3.36版本
    • 库的依赖库最好比自己稍旧一些,但也不能旧太多,比如expat就应该比dbus的版本旧一点
    • 如果网络上有现成的移植方案,尽量完全套用,可以极大的提高移植成功率
  • 基于以上原则,这里软件包选用的版本为
    bluez-libs-3.36
    expat-2.1.0.
    dbus-1.0.2
    glib-2.24.2
    bluez-utils-3.36
    libusb-1.0.9

3.配置内核

  • 为了让obex、bluez正常运行,仅仅移植库还不够,内核方面的支持也是必不可少的
  • 使用menuconfig
    首先令内核支持bluetooth,打开menuconfig
进入Device Drivers  ---> USB support

选中host相关的选项
以及USB Physical Layer drivers子目录下的选项

进入Networking support
<*>   Bluetooth subsystem support 

进入Networking support  ---> Bluetooth subsystem support
<*>   RFCOMM protocol support            
[*]     RFCOMM TTY support
<*>   BNEP protocol support   
[*]     Multicast filter support   
[*]     Protocol filter support  
<*>   HIDP protocol support     

进入Networking support  ---> Bluetooth subsystem support  ---> Bluetooth device drivers
<*> HCI USB driver             
< > HCI SDIO driver (NEW)      
< > HCI UART driver (NEW)                  
<*> HCI BCM203x USB driver                        
<*> HCI BPA10x USB driver                         
< > HCI BlueFRITZ! USB driver (NEW)                
< > HCI VHCI (Virtual HCI devic
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值