autotools 使用二

原创 2015年11月17日 16:52:16

产生configure需要三个文件
configure.ac
Makefile.am
src/Makefile.am
(参考我的另外两篇文章编写configure.ac编写Makefile.am
编辑好这几个文件就可以产生configure脚本,和config.h.in,Makefile.in,src/Makefile.in
configure.ac主要初始化一些信息,检查编译器,检查头文件,检查库,检查函数等。
下面是一个configure.ac样本

AC_INIT([amhello], [1.0], [bug-report@address])
AM_INIT_AUTOMAKE([foreign -Wall -Werror])
AC_PROG_CC
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT

AC_INIT初始化工程名,版本,bug报告地址一个emall
AM_INIT_AUTOMAKE 初始化automake
AC_PROG_CC检查编译器
AC_CONFIG_HEADERS产生config.h.in
AC_CONFIG_FILES 产生Makefile
AC_OUTPUT 输出这些文件 configure,config.h.in,Makefile

Makefile.am 指定建造目标程序,库还是动态库等
下面看一个例子
根目录下的Makefile.am

SUBDIRS=src

SUBDIRS表示建造路径为src,去到src下寻找Makefile.am
src/Makefile.am

bin_PROGRAMS=hello
hello_SOURCES=main.c

bin_PROGRAMS = hello表示建造一个应用程序hello,bin表示安装路径,PROGRAMS表示建造的是一个程序。
hello_SOURCES=main.c表示建造hello需要的源文件。

有两这些文件你输入下面的命令将会产生configure,config.h.in等文件
autoreconf –install

注意autoreconf其实会为你以一种正确的顺序去启动一系列的工具。
具体这些过程和用到的工具见下文
这里写图片描述

工具 描述
autoconf 从configure.ac创建configure
autoheader 从configure.ac创建config.h.in
autoreconf 以正确的顺序运行全部命令
autoscan 搜索源代码中的移植问题,最终configure.ac中没提及的宏
autoupdate 跟新configure.ac中废弃的宏
ifnames 收集源代码中的#if/#ifdef/…并且标示定义
autom4te autoconf的核心,它驱动M4通过下面的工具实现功能。
automake 从Makefile.am和configure.ac创建Makefile.in文件
aclocal 扫描configure.ac中的第三方宏,并且标示定义到aclocal.m4中

大多数时候不需要记住这些复杂的命令,只需要执行autoreconf –install就可以了。

configure相关的产生关系图

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述
资料来源
autotools.pdf

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

在Ubuntu下使用autotools生成Makefile

原文地址:http://blog.csdn.net/zhengqijun_/article/details/69952410 相信在Linux环境下做过项目的人,都会知道Makefile的重要性。它...

autotools 使用流程

在较大项目中, 如果手动维护Makefile, 那将是一件复杂并痛苦的事情. 那么, 有没有一种轻松的手段生成Makefile呢? autotools系列工具正是在这样的呼声中诞生的. 它只需用户输入...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

使用autotools

autotools (autoconf, automake)能自动创建用来编译代码的各种文件(configure, makefile). 有了它,我们就不需要手动写makefile了,也不用在环境变化...

Makefile自动生成(autotools工具的使用)

autotools是个系列工具,首先确认你的Ubuntu系统是否安装了以下工具(可以通过which命令查看): aclocal autoscan autoconf autoheader automa...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)