首先,根据GNU的编译知识,来分析下载下来的目录,虽然里面有很多win的,andriod的文件,就不要管了,考入centos里面去, 按下面顺序执行就ok了。
第一步执行顺序:
#autoscan //生成configure.scan 理论应该改写,但是目录中已有configure.ac(xxx.in),这是系统配置文件,高手是可以自己手写的,有很多宏定义。
#aclocal //应该生成aclocal.m4和autom4te.cache
aclocal根据configure.in文件的 内容,自动生成aclocal.m4文件.aclocal是 一个perl 脚本程序,它的 定义是 :”aclocal – create aclocal.m4 by scanning configure.ac”.
#autoconf // 生成configure脚步的工具,configure脚本能独立于autoconf运行,且在 运行的 过程中,不需要用户的 干预.
要生成configure文件,你必须告诉autoconf如何找到你所用的 宏.方式是 使用aclocal程序来生成你的 aclocal.m4.
autoconf从configure.in这个列举编译软件时所需要各种参数的 模板文件中创建configure.
autoconf需要GNU m4宏处理器来处理aclocal.m4,生成configure脚本.
m4是 一个宏处理器.将输入拷贝到输出,同时将宏展开.宏可以是 内嵌的 ,也可以是 用户定义的 .除了可以展开宏,m4还有一些内建的 函数,用来引用文件,执行命令,整数运算,文本操作,循环等.m4既可以作为编译器的 前端,也可以单独作为一个宏处理器.
#autoheader //生成config.h.in 是配置文件的模板;
#mkdir config //这是针对此项目的配置,是要把下面的一般生成的一些文件放入此目录下面;
#automake --add-missing //要生成几样,如下:
configure.ac:11: installing `config/config.guess'
configure.ac:11: installing `config/config.sub'
configure.ac:15: installing `config/install-sh'
configure.ac:15: installing `config/missing'
src/Makefile.am: installing `config/depcomp'
同时在顶层目录也成长了Makefile.in文件
#./configure //根据就会生成Makefile文件,而报错的话,应该是 系统缺乏configure.ac里面要求的库,解决就要安装相应的库。如:
#yum –y install
生成Makefile以后,
# make //根据Makefile编译源代码,连接,生成目标文件,可执行文件.
在执行过程中,没有生成可执行文件
也有可能是生成到其它目录去了
解决办法:
#find / -name testdisk
结果为:
在到目录下运行#./testdisk
Ok!
补充点额外知识:
make编译时,出现错误,一般先找第一个报错点,后面的种种奇怪的错误类型很可能就是前面的错误导致的。那么,如果make时输出信息太多,命令窗口都已经把最初的输出信息给覆盖了,那如何从头开始寻找错误根源呢?很简单,把make的输出信息导入到文件中保存,编译后,查看文件,所有的信息都会包含在文件里。
使用命令:
make >filename 2>&1如果有编译选项也无所谓
make ver4 >filename 2>&1
如果要重新make
就要make clean
然后再make
安装就是#make install