autotools归纳
最近接触到许多linux项目,其编译都是使用的autotools。
autotools是一个自动化的编译工具。个人理解它的最主要功能就是生成Makefile。
因为直接写Makefiel,其依赖关系还是比较复杂的。 一般的我们下载的源码包只要通过以下3条命令,就可完成编译和安装:
./configure
make
sudo make install 但是autotools其本来还是非常复杂的,下面给出参考
以下是命令列表:
autoscan 扫描给定的目录及其子目录,以搜寻普通的可移植性问题,比如检查编译器,库,头文件等。
生成的configure.scan是configure.ac文件的原型。 aclocal 是一个收集宏的过程。
将已经安装的宏、用户定义宏和acinclude.m4文件中的宏集中定义到文件aclocal.m4中。 autoheader 生成宏定义的模板文件config.h.in。
宏定义模板文件被后面的命令所需要。 automake 根据configure.ac和Makefile.am中定义的结构,生成Makefile.in文件。 libtoolize 如果在configure.ac中定义了一些特殊的宏,比如AC_PROG_LIBTOO,automake将会调用此命令。 autoconf 生成configure脚本文件。 make distclean 清除所有生成的文件 ./configure 生成Makefile。 make 编译。 make install 把程序安装到系统目录中去。 make uninstall 卸载程序。 make clean 清除生成的目标文件及过程中产生的文件。 make distclean 清除所有产生的文件。 make dist 将程序和相关的文档打包为一个.tar.gz压缩文件以供发布。 autoupdate 如果更新了Autoconf工具的版本,此命令可更新configure.in。
autoreconfig 如果更新了Autoconf工具的版本,此命令可更新产生的配置文件。
ifname 扫描C源程序文件,在标准输出上输出那些出现在#if,#elif,#ifdef或#ifndef中的标识符,
每个标识符显示为一行,其后跟一空格和所属的文件名。 command input output
--------------------------------------------------
autoscan [source] configure.scan
autoscan.log aclocal configure.ac aclocal.m4 autoheader aclocal.m4 autoconfig.h.in automake configure.ac INSTALL
makefile.am Makefile.in
COPYING
install-sh
missing
mkinstalldirs
stamp-h.in libtoolize config.guess
config.sub
ltmain.sh
ltconfig autoconf configure.ac configure
aclocal.m4
autoconfig.h.in command input output
-----------------------------------------------------------------
configure configure Makefile
Makefile.in config.h
cofnig.h.in config.log
XXXXX.pc.in config.status
XXXXX-uninstalled.pc.in libtool
XXXXX.pc
XXXXX-uninstalled.pc
stamp-h1 make Makefile make install Makefile make uninstall Makefile make clean Makefile make distclean Makefile make dist Makefile
autotools归纳的更多相关文章
- 在 Linux 中使用 Eclipse 和 Gnu Autotools 管理 C/C++ 项目
在我该系列的之前的所有随笔中,都是采用 Linux 发行版自带的包管理工具(如 apt-get.yum 等)进行软件的安装和卸载,从来没有向大家展示使用源代码自行编译安装软件的方法.但是长期混迹于 U ...
- AndroidProjects个人项目归纳
AndroidProjects 个人总结归纳-目录大纲 Data Binding框架MVVM BaseView CollapseView 更新中... 项目地址:https://github.com/ ...
- C/C++ makefile自动生成工具(comake2,autotools,linux),希望能为开源做点微薄的贡献!
序 在linux下C或C++项目开发,Makefile是必备的力气,但是发现手写很麻烦. 在百度有个comake2工具,用于自动生成Makefile工具,而在外边本想找一个同类工具,但发现 ...
- mysql在线修改表结构大数据表的风险与解决办法归纳
整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求.那么表结构也会经常修改,加字段,加索引.在线直接在生产环境的表中修改表结构,对用户使用网站是有影响. 以前我一直为这个问题头痛.当然那个时候不需 ...
- Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳
Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳 早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位 ...
- css学习归纳总结(三) 转
原文地址:css学习归纳总结(三) 为文档添加样式的三种方法 行内样式 行内样式是写在HTML标签的style属性里的,比如: <p style="font-size: 12px;fo ...
- css学习归纳总结(二) 转
原文地址:css学习归纳总结(二) 标签与元素 <p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别.<p>.<div>等指的是HTM ...
- css学习归纳总结(一) 转
原文地址:CSS学习归纳总结(一) 选择器的分组 CSS选择器分为 1.群组选择器 如:p, body, img, div{} 2.兄弟选择器 如:p + p { color:#f00; } 3.属性 ...
- 对Linux(Unix)的基础知识归纳
前言,不论是原生APP(Android&IOS),还是大型架构级基础环境(.NET&J2EE,或LAMP阵营等), 基本都不可避免的涉及到Linux(Unix),故还是觉得有必要把自己 ...
随机推荐
- php --with-mysql=mysqlnd
1.什么是mysqlnd驱动? PHP手册上的描述: MySQL Native Driver is a replacement for the MySQL Client Library (libmys ...
- iOS利用通知(NSNotification)进行传值
通知 是在跳转控制器之间常用的传值代理方式,除了代理模式,通知更方便.便捷,一个简单的Demo实现通知的跳转传值. iOS通知传值的使用 输入所要发送的信息 ,同时将label的值通过button方法 ...
- 用HTML 格式导出Excel
只需按照如下格式写就可,在<head> 里面嵌套table,必须修改html的命名空间,加上一些描述.保存为xls文件 <html xmlns:x="urn:schemas ...
- Java NIO 与 IO
我应该何时使用 IO,何时使用 NIO 呢?在本文中,我会尽量清晰地解析 Java NIO 和 IO 的差异.它们的使用场景,以及它们如何影响您的代码设计. Java NIO 和 IO 的主要区别 下 ...
- 单片机modebus RTU通信实现,采用C语言,可适用于单片机,VC,安卓等(转)
源:单片机modebus RTU通信实现,采用C语言,可适用于单片机,VC,安卓等 //modebus_rtu.c /***************************************** ...
- Tsinsen-A1488 : 魔法波【高斯消元+异或方程组】
高斯消元. 自己只能想出来把每一个点看成一个变量,用Xi表示其状态,这样必定TLE,n^2 个变量,再加上3次方的高斯消元(当然,可以用bitset压位). 正解如下: 我们把地图划分成一个个的横条和 ...
- ARM处理器工作模式
学习ARM处理器参考的首选资料是ARM Architecture Reference Manual,是最专业权威的学习资料. ARM处理器共有7种工作模式,如表1-1和1-2所示: 表1-1 处理器工 ...
- Git提交过程的一些问题
参考:http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html 提交冲突,无法提交到github git pull origin ...
- Kingbase在初始化时遇到的错误
FATAL: could not create semaphores: No space left on deviceDETAIL: Failed system call was semget(58 ...
- SVG的a链接
SVG的a链接: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...