Larbin编译步骤:

   编译前准备:(红色是要替换的为你自己的)

    1.确认是否已经安装了build-essential程序包:
           : sudo apt-get install build-essential

2. 确认是否已经安装了内核头文件包:
:uname –r  //查看内核名

<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><?xml:namespace prefix = st1 /><?xml:namespace prefix = st1 /><?xml:namespace prefix = st1 />-25-generic //我的显示结果

:sudo apt-get install linux-headers-'-25-generic '

  这里你要在单引号中换为你的内核名

3. 看一下gcc版本是否相匹配

:cat /proc/version

Linux version -25-generic (buildd@rothera) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #44-Ubuntu SMP Fri Sep 17 20:26:08 UTC 2010

:/usr/bin/gcc

/usr/bin/gcc-4.4 /usr/bin/gccmakedep

可以看到,我的核心是用gcc version 编译的, 已有了/usr/bin/gcc-4.4我这里可以。不相符要装内核。

:apt-get install gcc-4.4


开始编译:

   1. tar zxvf larbin-.tar.gz

      2. ./configure //或许会有如下错误:

make[2]: Entering directory `/home/ifeitian/larbin-/src/utils'

makedepend -f- -I.. -Y *.cc 2> /dev/null > .depend

make[2]: *** [dep-in] Error 127

make[2]: Leaving directory `/home/ ifeitian/larbin-/src/utils'

make[2]: Entering directory `/home/ ifeitian/larbin-/src/interf'

makedepend -f- -I.. -Y *.cc 2> /dev/null > .depend

make[2]: *** [dep-in] Error 127

make[2]: Leaving directory `/home/ ifeitian/larbin-/src/interf'

make[2]: Entering directory `/home/ ifeitian/larbin-/src/fetch'

makedepend -f- -I.. -Y *.cc 2> /dev/null > .depend

make[2]: *** [dep-in] Error 127

make[2]: Leaving directory `/home/ ifeitian/larbin-/src/fetch'

make[1]: *** [dep] Error 2

make[1]: Leaving directory `/home/ ifeitian/larbin-/src'

make: *** [dep] Error 2

这是makedepend命令的问题,没有安装。

:sudo apt-get install xutils-dev //安装

3. make

        这时会出现如下错误:

             parse.c: In function ‘vbuf__append_quoted:

parse.c:138: warning: pointer targets in passing argument 2 of ‘adns__vbuf_append’ differ in signedness

internal.h:331: note: expected ‘const byte *’ but argument is of type ‘char *’

parse.c:155: warning: pointer targets in passing argument 2 of ‘adns__vbuf_append’ differ in signedness

internal.h:331: note: expected ‘const byte *’ but argument is of type ‘char *’

make[1]: *** [parse.o]错误1

make[1]:正在离开目录`/home/ifeitian/larbin-/adns'

make: *** [all]错误2

这里由于/larbin-2.6.3/adns下internal.h中第568—571行代码引起的。其中一个参数类型错误。

修改方法有两种如下:

1.可以直接将这几行代码注释掉。即将这几行第一的函数体注释掉。

2.修改其中的参数类型

adns文件夹下internal.h文件569-571

adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu,

        vbuf *vb, parsedomain_flags flags,

         const byte *dgram, int dglen, int *cbyte_io, int max);

修改为:

adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu,

        vbuf *vb, adns_queryflags flags,

         const byte *dgram, int dglen, int *cbyte_io, int max);即可。

继续make:make

 这是有可能会出现如下错误:

          make[1]:正在进入目录`/home/ifeitian/larbin-/src'

for d in utils interf fetch; do (cd $d; make all); done

make[2]:正在进入目录`/home/ifeitian/larbin-/src/utils'

make[2]: ***没有规则可以创建“string.o”需要的目标“../iostream.h”。停止。

make[2]:正在离开目录`/home/ifeitian/larbin-/src/utils'

make[2]:正在进入目录`/home/ifeitian/larbin-/src/interf'

make[2]: ***没有规则可以创建“input.o”需要的目标“../iostream.h”。停止。

make[2]:正在离开目录`/home/ifeitian/larbin-/src/interf'

make[2]:正在进入目录`/home/ifeitian/larbin-/src/fetch'

g++ -Wno-deprecated -Wall -O3 -D_REENTRANT -I- -I.. -I../../adns   -c -o sequencer.o sequencer.cc

cc1plus: note: obsolete option -I- used, please use -iquote instead

sequencer.cc:5:22: error: iostream.h:没有那个文件或目录

make[2]: *** [sequencer.o]错误1

make[2]:正在离开目录`/home/ifeitian/larbin-/src/fetch'

make[1]: *** [subdirs-all]错误2

make[1]:正在离开目录`/home/ifeitian/larbin-/src'

make: *** [all]错误2

       这是由于在一些原文件中使用了include<iostream.h>在编译过程中没有发现。是C++及C编译中的问题。可以如下更改:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.   将所有有错误的文件中的include<iostream.h>改为include<iostream>

并加上using namespace std; C++的形式嘛。不过这种该法相当费劲的。需要改很多个文件太麻烦了。

         2.这个方法不错很简单易懂

                到/usr/include/c++/下CP一份iostream文件到larbin的src目录下。并将其的名改为iostream.h.打开此文件添加一句using namespace std;

            这就OK了。






 继续make吧。会OK了。


4.运行

    1.运行:./larbin

2.中止:Ctrl+C

3.重起:./larbin –scratch

5.  配置

    后续介绍。不配置是没什么大作用滴。很多个选项。慢慢详细看看。


原文:http://hi.baidu.com/fengvsjinglove/item/676e5bdd4f0647ee785daa7e