如何按需求编译dibbler开源库的研究

一、前言

我是下载的压缩包dibbler-RELEASE1.0.1.zip,然后只需要用dibbler-sever部分,其他部分没仔细看,但是应该大差不差。

二、需求

  1. 要单独编译server端
  2. 要交叉编译
  3. 只需要dhcpv6功能,尽可能阉割
  4. 要求编译静态库
  5. 修改配置文件路径
需求一:
直接运行 make server 就可以(客户端等同理)
需求二:
./configure CC=/xxx/xxx/xx/gcc CXX=/xx/xx/xx/xx/g++ --host=arm (我需要编译到arm平台,其他按需填写)
需求三:
我是把 configure.ac 里面有很多功能关掉了,比如:

### debugging ##################
  AC_ARG_ENABLE(debug,
     [  --enable-debug          Turn on debugging (default: no)],
     [  case "${enableval}" in
          yes)
            debug=yes
            ;;
          no)
            debug=no
            ;;
          *)
            AC_MSG_ERROR(bad value ${enableval} for --enable-debug)
            ;;
        esac],
     [ debug=no ] //这个功能如果不需要设置成no就可以
  )

修改完成后记得重新生成 cofigure 文件。

ps: 理论上能阉割更多功能,因为作者说模块是独立的,但我没试。


需求四:
dibbler设计是用libtool工具管理库的,我实在不知道怎么去设置默认链接静态库而不是动态,就采取了比较野蛮的方式,如下:

在makefile文件生成后直接修改这一变量:

CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CXXLD)  -all-static $(AM_CXXFLAGS) \
        $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@

加上了-all-static(要在编译器后面加)

需求四参考文章C++学习(三八四)libtool动态库 静态库_libtool静态链接libstdc++-CSDN博客

需求五:
直接改了Port-linux/Misc/Portable.h 里面的 #define SRVCONF_FILE       "/etc/dibbler/server.conf"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值