GNU autotools 安装和使用

转载 2015年07月09日 18:17:05

1. 下载
http://www.gnu.org/software/software.html

2. 安装
m4-1.4.11.tar.gz
autoconf-2.63.tar.gz
automake-1.9.1.tar.gz

3. autotools五工具

  • aclocal
  • autoscan
  • autoconf
  • autoheader
  • automake

4. autotools使用流程
第一步:手工编写Makefile.am这个文件
第二步:在源代码目录树的最高层运行autoscan。然后手动修改configure.scan文件,并改名为configure.ac/configure.in
第三步:运行aclocal,它会根据configure.ac的内容生成aclocal.m4文件
第四步:运行autoconf,它根据configure.ac和aclocal.m4的内容生成configure这个配置脚本文件
第五步:运行automake –add-missing,它根据Makefile.am的内容生成Makefile.in
第六步:运行configure,它会根据Makefile.in的内容生成Makefile这个文件

5. 流程图
autotools

6. 举例

# cat hello.c 

#include <stdio.h>
#include "include/hello.h"

int main()
{
        puts("hello");

        return 0;
}
# cat Makefile.am   //automake使用

SUBDIRS = lib
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = hello
hello_SOURCES = hello.c
hello_LDADD = lib/libprint.a

AUTOMAKE_OPTIONS为设置automake的选项。automake提供了3种软件等级:

  • foreign //只检测必须的文件
  • gnu //默认级别
  • gnits

SUBDIRS:子目录选项
bin_PROGRAMS:如果多个执行文件, 用空格隔开
hello_SOURCES:”hello”这个可执行程序所需的原始文件。如果”hello”这个程序是由多个源文件所产生, 所有源文件用空格隔开

# cat lib/Makefile.am

noinst_LIBRARIES = libprint.a
libprint_a_SOURCES = print.c ../include/print.h
# ls include

hello.h
print.h

7. 开始使用

# autoscan

生成configure.scan

//修改(软件名称, 版本信息, bug汇报E-mail)
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
//为
AC_INIT(hello, 0.01, [bug@sounos.org])
AM_INIT_AUTOMAKE
AC_PROG_RANLIB

重命名为configure.ac
AC_CONFIG_SCRDIR:宏用来侦测所指定的源码文件是否存在, 来确定源码目录的有效性
AC_CONFIG_HEADER:宏用于生成config.h文件,以便 autoheader 命令使用
AC_PROG_CC:用来指定编译器,如果不指定,默认gcc
AC_CONFIG_FILES:宏用于生成相应的Makefile文件
AC_OUTPUT:用来设定 configure 所要产生的文件,如果是makefile,configure 会把它检查出来的结果带入makefile.in文件产生合适的makefile

# aclocal
# autoconf
# autoheader
# automake --add-missing

Automake工具会根据 configure.in 中的参量把 Makefile.am 转换成 Makefile.in 文件
–add-missing:可以让 Automake 自动添加一些必需的脚本文件
再次运行,可以辅助生成几个必要的文件:

Makefile.am: required file `./NEWS' not found
Makefile.am: required file `./README' not found
Makefile.am: required file `./AUTHORS' not found
Makefile.am: required file `./ChangeLog' not found

解决办法:手动touch

# ./configure
# make
举报

相关文章推荐

GNU autotools 安装和使用

1. 下载 http://www.gnu.org/software/software.html 2. 安装 m4-1.4.11.tar.gz autoconf-2.63.tar.gz auto...

GNU Autotools的使用

Linux下,工程管理器 Make 可用于自动编译、链接程序的实用工具。我们要做的是写一个makefile 文件,然后用make命令来编译、链接程序。    Makefile的作用就是让编译器知道要编...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

GNU Autotools 使用小结

前段时间试着用了用Autotools,当时觉得不错想写一篇小的记录的,结果忙呀忙呀就拖到现在了……暑假里想重新写一篇,结果居然已经通通忘光了……是故现在决定速度动工,谨防以后自己又忘了…… 本文也是...

GNU Autotools的使用方法

最近编译VLCKit,涉及到了这方面知识 手工写Makefile是一件很有趣的事情,对于比较大型的项目,如果有工具可以代劳,自然是一件好事。在Linux系统开发环境中,GNU...

GNU Autotools 使用(合集)

转自 http://blog.csdn.net/scucj/article/details/6079052        手工写Makefile是一件很有趣的事情,对于比较大型的项目,如果有工...

Autotools使用详细解读[转载]

关于Autotools的使用 我们前面的章节中已经讲到了Makefile的使用(点击进入查看文章)。我们知道在Linux下面如果编译一个比较大型的项目,我们可以通过Makefile的...

GNU Autotools的使用方法

http://blog.csdn.net/scucj/article/details/6079052 手工写Makefile是一件很有趣的事情,对于比较大型的项目,如果有工具可以代劳,自然是一件好事...

GNU Autotools的使用方法

手工写Makefile是一件很有趣的事情,对于比较大型的项目,如果有工具可以代劳,自然是一件好事。在Linux系统开发环境中,GNU Autotools 无疑就充当了这个重要角色。(在Windows系...

GNU Autotools的使用方法

手工写Makefile是一件很有趣的事情,对于比较大型的项目,如果有工具可以代劳,自然是一件好事。在Linux系统开发环境中,GNU Autotools 无疑就充当了这个重要角色。(在Windows系...

在Ubuntu下使用autotools生成Makefile

相信在Linux环境下做过项目的人,都会知道Makefile的重要性。它能够帮助我们完成很多的编译工作,节约我们自己去编译的时间。Makefile的重要性这里就不在强调了!Windows下的IDE都自...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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