autotools工具使用记录
参考 http://blog.chinaunix.net/uid-25100840-id-271131.html
http://blog.sina.com.cn/s/blog_4c2bf01a01014fwj.html
下载与安装
下载地址http://www.gnu.org/software/software.html:
需要下载的工具包有:autoconf-2.69 automake-1.14 m4-1.4.17
我下载的是最新的版本
安装顺序 m4->autoconf->automake (参考的博文说这个顺序很重要,刚开始很纳闷,后来在安装的过程中,发现之间是有依赖关系的)
安装方法:./configure -> make -> make install
使用方法
autotool工具使用到的工具有:
aclocal
autoscan
autoconf
autoheader
automake
自动生成makefile的过程中需要做的有:
1 编写Makefile.am文件
SUBDIRS = lib #若需要编译的源文件在一个子目录下(lib为你的子目录名),需要申明,如果没有就没有必要写 AUTOMAKE_OPTIONS = foreign #如果不添加此行,会在执行automake -a 命令时报错,找不到“NEWS”“README”“AUTHORS”“ChangeLog"等文件
bin_PROGRAMS = hello #需要生成的目标文件
hello_SOURCES = hello.c #源文件 hello_LDADD = ./lib/libprint.a #依赖到库文件
noinst_LIBRARIES = libprint.a #需生成的链接库 noinst_ 只想编译不安装到系统中,inst_安装到系统中
libprint_a_SOURCES = print.c ../include/print.h #依赖文件
注意:如果此时,print.h若又包含一个base.h头文件,以上的写法就要做修改,libprint_a_SOURCES 可用修改如下
libprint_a_SOURCES = print.c
然后再添加一行:AM_CPPFLAGS= -I ../include 即可,最后在项目根目录的Makefile.am中添加这一行。
2 执行命令 autoscan 生成文件configure.scan,修改此文件,另存为configure.ac.修改或添加的内容如下:
AC_PREREQ([2.69])
AC_INIT(hello,0.01) #生成程序名,版本号,联系邮箱 4 AM_INIT_AUTOMAKE #此处为添加的 AC_PROG_RANLIB #此处为添加的,没有使用到自定义的库的时候,不添加此行也不会报错 AC_CONFIG_SRCDIR([hello.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
lib/Makefile])
AC_OUTPUT
3 执行命令 aclocal
4 执行命令 autoconf
5 执行命令 autoheader
6 执行命令 automake -a
7 执行命令 ./configure
8 make
autotools工具使用记录的更多相关文章
- automake - 使用 autotools 工具集
一般而言,对于小项目或玩具程序,手动编写 Makefile 即可.但对于大型项目,手动编写维护 Makefile 成为一件费时费力的无聊工作. 本文介绍 autotools 工具集自动生成符合 Lin ...
- (6)autotools工具的使用
autotools是专门用来生成Makefile的一系列工具,包括autoscan.aclocal.autoheader.autoconf.automake等. (1)autotools ...
- 使用autotools工具用configure、make、make install编译安装linux工程的详细步骤
使用autotools工具用configure.make.make install编译安装linux工程的详细步骤 转载tmxkwzy 最后发布于2016-11-24 10:20:15 阅读数 324 ...
- [Java学习] JSON工具学习记录--FastJSON
最近做项目,总是与json打交道,在用了即可json工具后,个人认为fastJson最好用,很方便,API也清晰可见,所以记录下使用方法,给需要的人提供帮助.(部分摘抄自网络) 一.API入口 Fas ...
- myEclipse 常用快捷键,工具等记录
小的不才,从北大青鸟毕业,出来之后到第一家公司进行工作,当时认为自己很牛逼,很无敌,但是出来之后发现在学校里学的那些东西,在工作中,除了会写一点if...else之外,连循环都很少写. 然而有用的工具 ...
- Pycharm工具配置记录
安装Pycharm工具后,常用配置方法记录: 1:开启“设置”快捷按钮 2:进入设置后,选择或添加python解释器 当然,python解释器需要提前安装好. 3:在设置里,配置默认模板 4 :自动更 ...
- mysql基础-数据库初始化操作必要步骤和客户端工具使用-记录(二)
0x01 mysql启动时,读取配置文件的顺序 Default options are read from the following files in the given order:/etc/my ...
- Fiddler抓包工具使用记录
前言 Fiddler是一款强大的Web调试代理工具,又称抓包软件,本文记录如何使用Flidder进行抓包 Fiddler官网:https://www.telerik.com/fiddler 下载安装 ...
- Zwibbler—前端Canvas绘图工具使用记录
本人第一次发博客,用意在于记录自己在开发过程中用到的实用工具并分享出来,写的可能不好,请大家多多包涵!!! 工具官网:https://www.zwibbler.com 基于Canvas的一个前端绘画工 ...
随机推荐
- Linux之 sort,uniq,cut,wc命令详解
sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 ...
- postgresql命令行
原文链接 PostgreSQL 8.1 中文文档 连接数据库, 默认的用户和数据库是postgrespsql -U user -d dbname \c dbname 切换数据库,相当于mysql的us ...
- python基本数据类型之集合set
一.集合的定义 set集合,是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数 ...
- "Unity测试系列"文章索引
对Unity各种API的细节进行测试 Common 一些Unity基础操作的性能测试 Animation/Animator Animation Play/Stop测试 关于Animation动画事件的 ...
- Intellij IDEA 快捷键介绍
ctrl-w 使所选表达式逐步增大直到选取整个文件 ctrl+shft+w 逐步减少选中 ctrl-n 可以通过键入类名查找一个类 ctrl-shift-n 可以查找文件 ctrl-e 得到 ...
- Android ToolBar
众所周知,在使用ActionBar的时候,一堆的问题:这个文字能不能定制,位置能不能改变,图标的间距怎么控制神马的,由此暴露出了ActionBar设计的不灵活.为此官方提供了ToolBar,并且提供了 ...
- SQL基础语法笔记教程整理
PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...
- stoneniqiu 理想就是自己喜欢做,并对社会和他人都有意义的事情!
H5嵌入原生开发小结----兼容安卓与ios的填坑之路 2016-11-19 08:29 by stoneniqiu, 1038 阅读, 8 评论, 收藏, 编辑 一开始听说开发H5,以为就是做适配现 ...
- PHP延迟静态绑定:static关键字
PHP5.3中引入了延迟静态绑定的概念.该特性最明显的标志就是新关键字static.static类似于self,但它指的是被调用的类而不是包含类.在本例中,它的意思是调用Document::creat ...
- winform自定义按钮菜单
//填写其他报表按钮 private void btnWriteRep_Click(object sender, EventArgs e) { try ...