移植openLDAP、berkeleyDB到ARM环境

环境:ubuntu、arm-linux-gnueabihf-gcc

目标环境:cortex-A7

准备:db-4.7.25.tar.gz、openldap-2.4.47.tgz官网下载

以下步骤均用普通用户,不需切换到root(个人习惯)

【交叉编译berkeleyDB、移植】

   1.首先创建mkdir db-4.7.25-arm目录

   2.解压tar zxvf db-4.7.25.tar.gz 

   3.在解压后的db-4.7.25目录中创建mkdir build_linux-arm目录

   4.配置环境及编译

     cd build_linux-arm/

     ../dist/configure --host=arm-linux CC=arm-linux-gnueabihf-gcc --prefix=/home/admin/tools/openldap/db-arm

     make

     make install(这一步也可以不用做,移植需要的文件已经在上一步生成,在build_linux_arm下面有db.h和.libs/libdb-4.7.a(静态库),这就是我们所要的文件,可以把db.h拷贝到目标系统中的/usr/include下面,或者自己添加环境变量,同理,libdb-4.5.a也可以放到/usr/lib下面)

 

 【交叉编译openLDAP、移植】

   1.解压tar -xvf openldap-2.4.47.tgz

   2.进入其目录cd openldap-2.4.47

   3.配置环境./configure CC=arm-linux-gnueabihf-gcc --host=arm-linux-gnueabihf --prefix=/home/admin/tools/openldap/openldap-arm LDFLAGS="-L/db交叉编译得到的库文件路径" CPPFLAGS="-I/db头文件或缺失的头文件路径" --enable-bdb -with-yielding-select=yes

   4.进行make depend命令之前

      a.先修改 build/shtool以避免strip error

 打开build/shtool的980行,找到:
 if [ “.$opt_s” = .yes ]; then
     if [ “.$opt_t” = .yes ]; then
         echo “strip $dsttmp” 1>&2
     fi
         strip $dsttmp || shtool_exit $?
 fi
 将其修改成:
 if [ “.$opt_s” = .yes ]; then
     if [ “.$opt_t” = .yes ]; then
         echo “arm-none-linux-gnueabi-strip $dsttmp” 1>&2
     fi
         arm-none-linux-gnueabi-strip $dsttmp || shtool_exit $?
 fi 

      b.修改 include/portable.h避免:~/result.c:961: undefined reference to 'lutil_memcmp'

 修改 include/portable.h,找到第860行,如下注释的即可
 //#define NEED_MEMCMP_REPLACEMENT 1

   5.make depend

   6.make

   7.make install

 

   

转载于:https://www.cnblogs.com/quliuliu2013/p/11237555.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值