automake autoconf 自动化编译

本文介绍如何使用automake和autoconf自动生成makefile文件,实现工程的自动化编译。包括搭建工程目录结构、创建Makefile.am文件、运行autoscan等步骤。

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

********************************************************************
利用automake和autofile 自动生成makefile文件,自动化编译自己的工程
********************************************************************
首先安装autoconfig

sudo apt-get install auto-config

1.建立自己的工程
  1)最顶层目录名为模块名  helloworld
    源文件放在模块下面的src子目录,例如helloworld/src
  2) 在src 下面,创建源文件main.c
  
  3) 在helloworld目录下面创建Makefile.am文件=>(为Makefile.in的模板文件,.am扩展名是automake的缩写),内容如下:
  
SUBDIRS=src

  4) 在helloworld/src 目录下创建Makefile.am文件 内容如下:


  bin_PROGRAMS=helloworld
  helloworld_SOURCES=main.c

  其中,PROGRAMS表示要产生的是可执行文件,有多个可执行文件文件时,可用空格分开,而bin表示可执行文件的安装目录
  SOURCES表示生成可执行文件需要的源文件,有多个源文件时,也用空格分开。

2.运行 autoscan =>创建autoconf的模板

 autoscan

  1).目录下面生成了configure.scan 文件,利用命令
  
mv configure.scan configure.in

  configure.in 文件为autoconf 的模板文件,内容如下:
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.


AC_PREREQ([2.68])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([src/main.c])
AC_CONFIG_HEADERS([config.h])


# 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_CONFIG_FILES([Makefile
                 src/Makefile])
AC_OUTPUT


 2). 修改configure.in文件

AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])

  修改为:

AC_INIT(helloworld, 0.1, wang@gmail.com)   ==>初始化autoconf

 添加
AM_INIT_AUTOMAKE(helloworld, 0.1)  ==>初始化automake


3.运行 aclocal => 复制所有的宏命令

aclocal

  备注:configure.in 里面包含了一系列的宏命令,运行aclocal的目的是 把工程需要的宏命令展开。(aclocal.m4 就是configure.in中用到的宏定义)

4.运行autoheader =》生成配置头文件的模板

autoheader

  备注:创建4个必要的文件
  touch README NEWS AUTHORS ChangeLog 
  README :描述模块的功能,用法和注意事项
  NEWS : 描述模块最新的动态
  AUTHORS : 模块的作者及联系方式
  ChangeLog : 记录模块的修改历史,格式如下:
  2012-07-22 Ming Wang
  * Modify


5. automake -a => 生成Makefiel.in和所需要的脚本

automake -a

6. autoconf  => 生成configure脚本

autoconf

   调研m4展开configure.in中的宏,生成configure脚本


7. ./configure   => 生成最终的Makefile文件

./configure

  configure 通常有两个参数
  1) --prefix 用来制定安装目录 linux默认/usr/local
  2) --host 用于交叉编译


8 make ==> 编译
 
make

9. make install 安装

make install

10 make dist或者make distcheck   ==>发布软件包 

make dist或者make distcheck  

  生成helloworld-0.1.tar.gz




     
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值