zoukankan      html  css  js  c++  java
  • autoconf和automake的使用

    经常遇到自动生成makefile失败的情况,总结一下以供以后参考.

    一、configure,makefile.am,makefile.in,makefile之间的关系如下图:

    二、自动生成makefile步骤:

    1.autoscan  -------> configure.scan      autoscan.log

    2.编辑configure.scan

    mv configure.scan configure.in
    vi configure.in
    

         主要增加AM_INIT_AUTOMAKE(程序名, 版本号)

              修改AC_OUTPUT(Makefile)

    一个configure.in文件模板如下:

    #                                               -*- Autoconf -*-
    # Process this file with autoconf to produce a configure script.

    AC_PREREQ(2.59)
    AC_INIT(Test, 0.1, test@example.com)
    AC_CONFIG_SRCDIR([DBAgent.cpp])
    AM_CONFIG_HEADER(config.h)
    AM_INIT_AUTOMAKE(Test, 0.1)

    # Checks for programs.
    AC_PROG_CXX
    AC_PROG_CC

    # Checks for libraries.

    # Checks for header files.

    # Checks for typedefs, structures, and compiler characteristics.

    # Checks for library functions.

    AC_OUTPUT(Makefile)

     

    3.aclocal  ---------> aclocal.m4  autom4te.cache

    4.autoconf   ------->

    5.新建Makefile.am

    一个Makefile.am模板如下:

    AUTOMAKE_OPTIONS=foreign

    bin_PROGRAMS=Test

    Test_SOURCES= *.h *.c *.cpp

    Test_LDADD = –lpthread

    AM_CXXFLAGS = -Wall -Wno-deprecated –g

    6.automake –-add-missing  ------>

    7.执行 ./configure ---> makefile

    8.make

    三、有可能遇到的问题

    1.提示缺少config.h.in文件

    用autoheader生成

  • 相关阅读:
    文章的上一页和下一页功能
    mysql的子查询in()操作及按指定顺序显示
    apache的配置详解
    mysql replace()用法
    js判断手机登陆用户
    mysql的常用函数
    mysql substring_index()查询某个字符中以某个分割符分割后的值
    mysql复制表数据,多表数据复制到一张表
    mysql数据去重复distinct、group by
    js获取站点根目录
  • 原文地址:https://www.cnblogs.com/bo083/p/2350026.html
Copyright © 2011-2022 走看看