GNU Autotools [一]


文章目录

  • GNU Autotools [一]
    • Autotools
      • 系列工具包:Autoconf、Automake、Libtool
        • 工具安装
        • 手动安装:
    • Autotools自动创建Makefile流程
      • 示例:
    • 工具的发展史
    • linux发行版

Autotools

系列工具包:Autoconf、Automake、Libtool

工具安装

检测系统是否已经安装:which autoconf 自动安装:apt install autoconf automake libtool 需要依赖的包:m4\perl\autotools-dev\autoconf-archive\gnu-standards\ autobook …

手动安装:

»下载对应.tar.gz源码包;解压tar xvf *.tar.gz »编译:./configure;make;make install

Autotools自动创建Makefile流程

•生成Makefile的通用规则文件Makefile.in •(1)手工编写Makefile.am文件
•(2)#automake:将Makefile.am->Makefile.in •生成配置脚本configure •(1)#autoscan:生成configure.scan ->configure.ac
•(2)修改、配置configure.ac
•(3)#aclocal:生成aclocal.m4,存放autoconf运行需要的宏
•(4)#autoconf:将configure.acàconfigure •通过configure生成Makefile •(1)#./configure:Makefile.inàMakefile
•(2)#make;make install

示例:

  1. 在autotools下创建hello.c

  2. 用autoscan生成configure.scan

  3. mv configure.scan configure.ac

  4. 修改configure.ac

  1 #                                               -*- Autoconf -*-2 # Process this file with autoconf to produce a configure script.3 4 AC_PREREQ([2.69])5 AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])  //FULL-PACKAGE-NAME 为软件包名, 6 AC_CONFIG_SRCDIR([hello.c])7 AC_CONFIG_HEADERS([config.h])8 9 # Checks for programs.10 AC_PROG_CC11 12 # Checks for libraries.13 14 # Checks for header files.15 16 # Checks for typedefs, structures, and compiler characteristics.17 18 # Checks for library functions.19 20 AC_OUTPUT

  1 #                                               -*- Autoconf -*-2 # Process this file with autoconf to produce a configure script.3 4 AC_PREREQ([2.69])5 AC_INIT(hello, 1.0, mail.original.com)6 AC_CONFIG_SRCDIR([hello.c])7 AC_CONFIG_HEADERS([config.h])8 AM_INIT_AUTOMAKE            //使用Automake编译9 10 # Checks for programs.11 AC_PROG_CC12 13 # Checks for libraries.14 15 # Checks for header files.16 17 # Checks for typedefs, structures, and compiler characteristics.18 19 # Checks for library functions.20 21 AC_OUTPUT(Makefile)  //指定输出文件 Makefiel22 23

  1. aclocal:生成aclocal.m4,存放autoconf运行需要的宏

  2. autoconf:将configure.ac->configure

  3. 创建 Makefile.am

  4. autoheader 生成配置文件

  5. automake --add-missing(-a) 生成隐式配置

  6. 编译

        ./configuremakemake installmake uninstall

工具的发展史

linux发行版

GNU Autotools [一]相关推荐

  1. Autobook中文版(七)—9.一个小的GNU Autotools项目

    9.一个小的GNU Autotools项目 本章介绍一个真实的小例子,演示一些GNU Autotools具有的特性,指明一些GNU Autotools使用上的陷阱.所有的源码能被下载从本书的主页上.这 ...

  2. GNU Autotools 简介

    如果你还没有使用过 Autotools,本教程将改变你交付代码的方式. 图片来源: 亚历克斯·桑切斯.CC BY-SA 4.0. 你有没有下载过一个流行的软件项目的源代码,需要你输入几乎仪式化的./c ...

  3. 《Autotools – GNU Autoconf, Automake与Libtool实践者指南》第一章

    最近项目中有用到此部分工具,所以在此转载一篇相关文章,如有侵权,请留言告知! 转载于http://www.xuebuyuan.com/2147621.html 前言 本文根据<Autotools ...

  4. 使用 GNU Libtool 创建库

    介绍 在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为每个系统对动态链接库的看法和实现并不相同,以及编译器对动态链接库支持的选项也不太一样.对于开发人员,如果尝试将使用动态库的软件在这些系 ...

  5. 转载:使用 GNU Libtool 创建库

    转载自:http://www.ibm.com/developerworks/cn/aix/library/1007_wuxh_libtool/ 介绍 在不同的系统中建立动态链接库的方法有很大的差别,这 ...

  6. autotools入门笔记(一)

    GNU autotools作用:收集系统配置信息并自动生成Makefile文件. GNU autotools主要包括三个工具:autoconf.automake.libtool,还有很多辅助的工具,包 ...

  7. GNU toolchain —— (一)介绍

    GNU工具链(GNU toolchain)是一个包含了由GNU项目所产生的各种编程工具的集合.这些工具形成了一条工具链(串行使用的一组工具),用于开发应用程序和操作系统. GNU工具链中包含的项目有: ...

  8. 使用autotools自动生成Makefile并在此之上使用dh-make生成可发布的deb程序包(详解)

    一.前言 本文将介绍如何使用autotools生成一个Makefile文件,并在此基础上使用dh-make和debuild生成一个可发布的deb程序包,这也是我们在Linux下开发应用程序以及想要发布 ...

  9. TQ2440开发板学习纪实(0.1)--- GNU Freestanding(Naked)C ARM交叉开发环境创建与测试

    0 由来 在我的博文 GNU ARM交叉汇编环境的搭建与测试中,详细讲解了GNU ARM汇编环境的创建与使用方法.实际开发中,直接使用汇编语言写的代码往往很少,尽在系统启动和性能要求极其苛刻的时候才会 ...

最新文章

  1. 快过HugeCTR:用OneFlow轻松实现大型推荐系统引擎
  2. 找工作,我该如何是好?
  3. office online server收费吗_上海公司注册价格有乱收费吗?
  4. bzoj4152 The Captain (dijkstra)
  5. 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[中篇]:请求响应
  6. 简述垃圾对象产生_使用零垃圾创建数百万个对象
  7. 在WPF里面显示DIB图片格式的图片
  8. Spring Boot,Sprint Batch 学习
  9. Oracle根据外键名称查找关联的表与列
  10. 【直播礼物特效】vap原理图理解
  11. java源文件结构_Java源文件结构详解
  12. 中文可以声明java类吗_JSP中可以声明基本类型和结构类型变量,但不能申明类,类必须放在JavaBean中。...
  13. Vue 爬坑之旅 -- 用自定义指令解决 IOS 12 中键盘收起后页面底部有留白的问题
  14. MQTT在线公共的MQTT服务器
  15. 唐伯虎的诗,可能是改编的
  16. 关于论文图的排版(origin)
  17. LVS负载均衡群集(NAT模式)
  18. 第十三届蓝桥杯(Web 应用开发)线上模拟赛【第三题】(封装函数实现个人所得税计算器)
  19. Linux修改时间失败的解决办法
  20. BZOJ 1812 IOI 2005 riv

热门文章

  1. AI智能营业厅视频监控解决方案
  2. 登录中国专利电子申请网的正确姿势
  3. 在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)
  4. java安装 1723_2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段...
  5. 图解 | JavaScript的作用域和作用域链
  6. Python代码实现两张图片的拼接
  7. 复现笔记--有关极性码的两篇文章
  8. pyspider创建淘女郎图片爬虫任务-运行流程解析
  9. html 移动端缩小显示图片,Vue移动端可放大缩小图片vue-photo-preview
  10. Apache Kafka实战读书笔记(推荐指数:☆☆☆☆☆)