linux软件构建方法,linux软件构建顺序,程序构建方法,
很多时候,我们在网上下载的linux开源软件都会遇到一个问题,就是源码里面没有直接的makefile
,但是它有Makefile.am
和makefile.in
或者它有Makefile.am
和configure.in(或configure.ac)
。
具体操作步骤如下:
1. 执行aclocal
,产生aclocal.m4
文件
aclocal是一个perl 脚本程序,它的定义是:
0 |
# aclocal |
aclocal
根据configure.in
文件的内容,自动生成aclocal.m4
文件。而aclocal.m4
文件中,包含了生成configure
文件所必须的宏。
2. 执行autoconf
,生成configure
文件
autoconf
会根据configure.in
和aclocal.m4
文件,生成configure
文件。
3. 执行automake
命令,产生Makefile.in
0 |
# automake --add-missing |
automake
会根据Makefile.am
文件产生一些文件,包含最重要的Makefile.in
。前面所生成的configure
,会根据Makefile.in
文件,来生成最终的Makefile
文件。
4. 执行configure
命令,生成Makefile
文件
这样,就产生了编译所需要的Makefile
文件。运行make
,即可编译。
0 |
# ./configure |
如果我们有了
Makefile.am
和makefile.in
那就可以执行第四步了。
这里在进行第四步的时候很可能会遇到一个问题:
0 1 |
error: C++ preprocessor "/lib/cpp" fails sanity check See `config.log' for more details. |
出现该情况是由于c++编译器的相关package没有安装。
以Ubuntu为例,解决如下:
0 |
#sudo apt-get install build-essential |
以RED HAT为例:
0 1 |
# yum install glibc-headers # yum install gcc-c++ |
这样子有了makefile
之后我们就可以愉快的make
了!!