Linux下编程时的Makefile是个令人头疼的问题,而且编译环境不同,需要不同的Makefile,这个不可能由用户来自己编写,好在我们有自动生成Makefile的工具autotools。。。但是百度上的很多方法其实并不完全适用与ubuntu系统,所以今天我就跟大家分享一下在ubuntu12.04下使用autotools自动生成Makefile的方法。。。
1、autotool是一个系列工具,首先用which命令确认是否安装了以下工具:
aclocal autoscan autoconf autoheader automake
如果没有安装,在终端下,使用下面的命令来分别安装:
~$ sudo apt-get install autoconf
2、进行到源文件的目录下。。执行autoscan
这时会在目录下新生成两个文件autoscan.log(日记文件,可以忽略)和configure.scan。。
使用vi编译器进入configure.scan对其进行修改。。。
-----------------------------configure.in文件开始-----------------------------------------
#
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.64])
AC_INIT(first, 1.0, XXXX@XXX.com)
AC_CONFIG_SRCDIR([first.c]) # first.c是你的c文件名称,,可以自行改正。。
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE(first,1.0)
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_OUTPUT(Makefile)
3,新建文件Makefile.am,内容如下:
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=first
first_SOURCES=first.c #如果有头文件的话,,将其名称写在c文件后面
保存。
4,运行命令aclocal,
~/cproject$ aclocal
命令成功之后,在目录下会产生aclocal.m4和autom4te.cache两个文件。
5,运行命令autoheader
~/cproject$ autoheader
命令成功之后,会在目录下产生config.h.in这个新文件。
6,运行命令autoconf
~/cproject$ autoconf
命令成功之后,会在目录下产生configure这个新文件。
7,运行命令automake --add-missing
~/cproject$ automake --add-missing
输出结果为:
configure.in:8: installing `./install-sh'
configure.in:8: installing `./missing'
Makefile.am: installing `./depcomp'
命令成功之后,会在目录下产生depcomp,install-sh和missing这三个新文件和执行下一步的Makefile.in文件。
8,运行命令
~/cproject$ ./configure
就可以自动生成Makefile。
9,make一下看看,是不是已经产生可执行文件first了?
呵呵,,谢谢观看。。