expri on the testdisk

时间:2022-05-10 21:27:06

首先,根据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