使用automake来写makefile

本文详细介绍了如何使用Automake工具构建C项目,包括设置makefile.am、使用autogen脚本、配置configure.in文件等步骤,并通过实际示例演示了整个流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将设现在的文件目录project是这样的:
main.c src inc
src中放入所有的.c文件:add.c 、hello.c。
inc中放入所有的.h文件:add.h 、hello.h。

使用automake来写makefile的流程如下:


1、写makefile.am
有三个地方需要写makefile.am:
1)、当前文件(project)下;
    AUTOMAKE_OPTIONS = foreign
    SUBDIRS = src inc                      //子目录
     ROOTDIR = $(shell /bin/pwd)      //获得当前目录
     INCLUDES = -I$(ROOTDIR)/inc     //头文件的地址

     export INCLUDES                        //其他文件也可用这个环境变量
     bin_PROGRAMS = cyh_run          //要产生的可执行文件名
     cyh_run_SOURCES = main.c        //用来执行的源文件
     cyh_run_LDADD = $(ROOTDIR)/src/libaddhello.a     //增加链接库
2)、src目录
	noinst_LIBRARIES = libaddhello.a          
      libaddhello_a_SOURCES = add.c hello.c
3)、inc目录下
	EXTRA_DIST = add.h hello.h          //额外要打包的文件



2、输入命令:autoscan
执行上述命令后,会生产一个configure.scan文件,
输入命令:mv configure.scanconfigure.in将其转换为configure.in
在将configure.in内容修改为:
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.


AC_PREREQ(2.63)
AC_INIT(cyh_run, 1.0, 991698424@qq.com)    ----修改
AM_INIT_AUTOMAKE()           -----新增
AC_CONFIG_SRCDIR([main.c])
#AC_CONFIG_HEADERS([config.h])       ----修改


# Checks for programs.
AC_PROG_CC


# Checks for libraries.
AC_PROG_RANLIB                 -----新增


# Checks for header files.


# Checks for typedefs, structures, and compiler characteristics.


# Checks for library functions.


AC_CONFIG_FILES([Makefile
                 inc/Makefile
                 src/Makefile])
AC_OUTPUT


3、输入命令:aclocal
4、输入命令:autoconf
5、输入命令:automake --add-missing
6、输入命令:./configure
7、输入命令:make

8、执行./cyh_run,得到以下结果:

Hello, I'am cyh
1 + 5 = 6





--------------------------------------------------2012年9月29日1:03:10



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值