zoukankan      html  css  js  c++  java
  • GNU Build System Autotools

    About autotools you can find here http://en.wikipedia.org/wiki/GNU_build_system

    Now let's learn it from an example

    create a dir and some source file that you need to compile

    mkdir autotools
    cd autotools vi main.c

    and in main.c ,we can write this into it

    #include<sydio.h>
    #include"hello.h"
    int main()
    {
          printf("%s\n",ch);          
          return 0;  
    }
    //example

    under ./autotools ,we can run autoscan,it will generate autoscan.log and configure.scan

    autoscan

    edit configure.scan and save it as configure.in

    vi configure.scan
    #edit this file

    and the final configure.in should be like this:

    AC_PREREQ(2.57)
    AC_INIT(main,1.0)
    AM_INIT_AUTOMAKE(main,1.0)
    AC_CONFIG_SRCDIR([main.c])
    AM_CONFIG_HEADER([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])
    AC_OUTPUT
    AC_PREREQ references to the version of autoconf.
    AM_INIT_AUTOMAKE must be include in this file,and "main" is the programs's name.

    运行aclocal
    aclocal
    
    

    autoconf 生成autom4te.cache configure

    autoconf

    运行autoheader,生成config.h.in

    autoheader

    用vi编辑Makefile.am

    vi Makefile.am

    加入如下内容:

    AUTOMAKE_OPTIONS=foreign

    bin_PROGRAMS=main

    hello_SOURCES=main.c hello.h

    运行automake
    automake --add-missing

      then we can use ./configure to generate Makefile, and use make to compile it, and use make install to install it into your system

  • 相关阅读:
    # ES6基础
    # yarn简单使用
    # laravel框架中的配置
    需求概述开发进度09
    需求概述开发进度08
    需求概述开发进度07
    需求概述开发进度06
    需求概述开发进度05
    需求概述开发进度04
    需求概述开发进度03
  • 原文地址:https://www.cnblogs.com/rayfloyd/p/2831177.html
Copyright © 2011-2022 走看看