使用autoconf及automake自动生成makefile实战

本文介绍了使用GNU autoconf 及automake这两个软件时,如何把程序安裝到系统中,从而提高我们的开发效率!

| 导语 我们在Linux下进行软件开发的过程中,经常需要写makefile文件,使用GNU autoconf 及 automake 这两个软件,用户只要使用 “./configure”, “make”, “make install” 就可以把程序安裝到系统中,从而提高我们的开发效率。

本文由腾讯WeTest授权发布,商业转载请联系腾讯WeTest授权,非商业转载请注明出处。

 

假设我们开发的过程中文件组织格式是这样的,bin文件用来存放生成的二进制文件,include目录存放相关的头文件,src目录存放相关的实现文件。

想要生成makefile我们只需以下几步。

1.首先运行autoscan命令,生成configure.scan文件

 

2.把configure.scan重命名为configure.ac,打开之后文件内容为

  1 #                                               -*- Autoconf -*-
  2 # Process this file with autoconf to produce a configure script.
  3 
  4 AC_PREREQ([2.63])
  5 AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
  6 AC_CONFIG_SRCDIR([src/main.cpp])
  7 AC_CONFIG_HEADERS([config.h])
  8                                                                                                            
  9 # Checks for programs.
 10 AC_PROG_CXX
 11 AC_PROG_CC
 12 
 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

我们把他编辑为

  1 #                                               -*- Autoconf -*-
  2 # Process this file with autoconf to produce a configure script.
  3 
  4 AC_PREREQ([2.63])
  5 AC_INIT([test], [1.0], [michealshen@tencent.com])
  6 AC_CONFIG_SRCDIR([src/main.cpp])
  7 AC_CONFIG_HEADERS([config.h])
  8 AM_INIT_AUTOMAKE
  9 # Checks for programs.
 10 AC_PROG_CXX
 11 AC_PROG_CC
 12 
 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 src/Makefile)  

注意要把第八行的AM_INIT_AUTOMAKE加上,否则后面automake的时候会提示报错。

3.然后我们运行aclocal以及autoconf命令,生成acloacl.m4以及configure文件。

4.然后我们需要编辑一下我们的Makefile.am文件,这里除了顶层目录需要之外,src中的每个目录也是需要的。

顶层目录的Makefile.am为

1 AUTOMAKE_OPTIONS=foreign
2 SUBDIRS=src    

 Src目录中为

1 INCLUDES=-I$(top_srcdir)/include 
2 bin_PROGRAMS=$(top_srcdir)/bin/test
3 __top_srcdir__bin_test_SOURCES=test.cpp main.cpp  

5.大功快要告成了,接下来我们执行automake --add-missing用来生成我们最重要的Makefile.in文件。

6.为了区分,我们新建一个build目录用来执行make命令。

Ok,done。

 

关于腾讯WeTest (wetest.qq.com)

 

腾讯WeTest是腾讯游戏官方推出的一站式游戏测试平台,用十年腾讯游戏测试经验帮助广大开发者对游戏开发全生命周期进行质量保障。腾讯WeTest提供:适配兼容测试;云端真机调试;安全测试;耗电量测试;服务器性能测试;舆情监控等服务。

最新文章
1WeTest携PC&主机游戏质量保障服务和性能测试平台PerfDog亮相Gamescom 2024 以全场景游戏质量保障服务及性能测试解决方案,助力全球游戏行业的创新与发展
2一张图带你了解小程序隐私合规检测 快速了解小程序隐私合规检测如何防范黑灰产风险,守护用户数据安全
3防范小程序隐私合规风险,筑牢用户信任防线 了解隐私合规检测如何帮助小程序规避数据安全风险
4WeTest 海外测试需求有奖问卷活动中奖名单公布 近日,WeTest 海外测试需求有奖问卷活动圆满结束,经过紧张的统计与筛选,以下朋友们中奖,成功获得了我们的门票礼品。
5海外本地化测试的全生命周期服务 第三期 支付测试 海外支付风控升级,非本地测试封号现象频发,真金测试推进困难?来看WeTest的本地化支付测试方案
购买
客服
反馈