zoukankan      html  css  js  c++  java
  • autotools入门笔记(一)

    GNU autotools作用:收集系统配置信息并自动生成Makefile文件。

    GNU autotools主要包括三个工具:autoconf、automake、libtool,还有很多辅助的工具,包括:autoheader、aclocal、autoscan。

    ● autoscan检测源文件生成configure.scan;

    ● autoconf根据configure.in(或者configure.ac)生成configure;

    ● automake根据Makefile.am 生成Makefile.in。

    这几个工具及中间生成的文件的关系图如图1所示:

     

    图1


    Ubuntu下安装:

    sudo apt-get install autoconf

    sudo apt-get install automake

     

    下面以test工程为例,工程跟目录为test,只有一个源文件main.c。构建的主要步骤如下,其中最主要的步骤是(2)和(6):

    (1)运行autoscan检测源文件生成configure.scan,将其修改成configure.in

    (2)编辑configure.in

              a.修改AC_INIT(FULL-PACKAGE-NAME,VERSION, BUG-REPORT-ADDRESS),FULL-PACKAGE-NAME为程序名称,VERSION为当前版本,BUG-REPORT-ADDRESS为bug汇报地址。例如:AC_INIT(main,0.0.1, test@test.com);

              b. 随后增加一行:AM_INIT_AUTOMAKE(test, 0.0.1);

              c. 在AC_OUTPUT前增加一行:AC_CONFIG_FILES([Makefile])

              (文件configure.in完整内容如图2所示)


    图2

    (3)运行aclocal生成aclocal.m4

    (4)运行autoconf生成configure脚本

    (5)运行autoheader生成config.h.in文件

    (6)创建并编辑Makefile.am

           AUTOMAKE_OPTIONS=foreign

           #automake提供了三种软件等级:foreign、gnu和gnits,默认等级为gnu,(会检测NEWS、README、AUTHORS和ChangeLog文件)。

           #在本例使用foreign等级,它只检测必须的文件。

           bin_PROGRAMS=main

           #定义要产生的可执行文件名,如果要产生多个执行文件,每个文件名用空格隔开。

           main_SOURCES=main.c

           #指定用来生成目标的源文件列表

          (文件Makefile.am完整内容如图3所示)


    图3

    (7)运行automake --add-missing生成makefile.in

    (8)运行configure脚本生成Makefile

    至此,构建完毕,运行make命令可以完成编译过程生成可执行文件main。


  • 相关阅读:
    并发之线程封闭与ThreadLocal解析
    并发之不可变对象
    开发者
    并发之atomicInteger与CAS机制
    并发之synchronized关键字的应用
    并发之volatile关键字
    并发研究之可见性、有序性、原子性
    并发研究之Java内存模型(Java Memory Model)
    并发研究之CPU缓存一致性协议(MESI)
    线程安全的日期处理
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3149531.html
Copyright © 2011-2022 走看看