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的一个前端绘画工 ...
随机推荐
- shell脚本 空格
1.定义变量时, =号的两边不可以留空格. eg: gender=femal----right gender =femal---–wrong gender= femal---–wrong 2.条件测试 ...
- (转)MySQL联表查询
资料源于网络 一.内联结.外联结.左联结.右联结的含义及区别在SQL标准中规划的(Join)联结大致分为下面四种:1.内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结.2 ...
- spring netty-socket.io
spring-nettysocketio.xml文件内容如下: <?xml version="1.0" encoding="UTF-8"?>< ...
- winform开发框架之模块维护
前言:模块维护试图解决的问题, 模块加载只用MEF的方式: MEF(Managed Extensibility Framework)是一个用于创建可扩展的轻型应用程序的库. 应用程序开发人员可利用该库 ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序读取相关数据
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第七篇:为ASP.NET MVC应用程序 ...
- MyBatis简介
- CSS基础介绍
CSS介绍 CSS是指层叠样式表,CSS样式表极大的提高了工作效率 CSS基础语法 1. 首先选择一个属性 2. 选择了属性以后,用大括号括起来 3. 括号里面是对应的属性和属性值,如: select ...
- HDU-4532 湫秋系列故事——安排座位 组合数学DP
题意:有来自n个专业的学生,每个专业分别有ai个同学,现在要将这些学生排成一行,使得相邻的两个学生来自不同的专业,问有多少种不同的安排方案. 分析:首先将所有专业的学生视作一样的,最后再乘以各自学生的 ...
- python 线程学习
彩照 一.学习[1] # -*- coding: utf-8 -*- import time import thread def timer(no, interval): cnt = 0 while ...
- hdu4734 F(x)
链接 这题当时在网络赛时很费劲的推出来的,以递推的形式写出来的,一些边界点特别不好控制,靠看数据改出来的.现在改出dfs形式,也是很简单的. 因为f(x)的数不会很大,直接保留前面枚举的数得出的结果即 ...