快速业务通道

Linux下automake软件编译与发布快速入门

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-08

本例假设要产生一个simserver1的软件包,源文件只有1个,simserver1.cpp.使用了pthread库.

1.运行autoscan扫描源码目录

执行

$autoscan

执行后生成configure.scan.

2.编辑configure.in文件

步骤1执行后生成了configure.scan,本步骤需要复制一份该文件并命名为configure.in,然后编辑该文件.

命令如下:

$cp configure.scan configure.in

$vim configure.in

用vim编辑器打开后,文件原内容如下:

configure.scan开始

# -*- Autoconf -*-

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

AC_PREREQ(2.61)

AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)

AC_CONFIG_SRCDIR([simserver1.cpp])

AC_CONFIG_HEADER([config.h])

# Checks for programs.

AC_PROG_CXX

# Checks for libraries.

# FIXME: Replace `main'' with a function in `-lpthread'':

AC_CHECK_LIB([pthread], [main])

# Checks for header files.

AC_CHECK_HEADERS([arpa/inet.h netinet/in.h sys/socket.h])

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_HEADER_STDC

AC_CHECK_FUNCS([bzero inet_ntoa socket])

AC_CONFIG_FILES([Makefile])

AC_OUTPUT

configure.scan结束

编辑修改成如下内容:

configure.in开始

# -*- Autoconf -*-

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

AC_INIT(simserver1.cpp) #这个宏用来检查源代码所在的路径,放在文件开头

AM_INIT_AUTOMAKE(simserver1,1.0)   #描述软件包名称及版本号

# Checks for programs.

AC_PROG_CXX #使用C

# Checks for libraries.

# Checks for header files.

AC_CHECK_HEADERS([arpa/inet.h netinet/in.h sys/socket.h])

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_HEADER_STDC

AC_CHECK_FUNCS([bzero inet_ntoa socket])

AC_OUTPUT(Makefile) #这个宏是我们要输出的Makefile的名字

configure.in结束

3.运行aclocal生成aclocal.m4文件

configure.in文件编辑保存完后,用aclocal命令生成aclocal.m4文件.

执行以下命令:

$aclocal

然后用ls列出生成的文件.如果没有找到aclocal.m4文件,那一般是configure.in文件不对,修改后再重试.

4.运行autoconf生成configure文件

用autoconf命令来生成configure可执行文件.

执行以下命令:

$autoconf

然后用ls检查configure是否已经成功生成.

5.建立Makefile.am文件

Makefile.am是用来生成Makefile.in的,需要你手工书写.Makefile.am中定义了一些内容:

AUTOMAKE_OPTIONS

这个是automake的选项.在执行automake时,它会检查目录下是否存在标准GNU软件包中应具备的各种文件,例如AUTHORS、ChangeLog、NEWS等文件.我们将其设置成foreign时,automake会改用一般软件包的标准来检查.

bin_PROGRAMS

这个是指定我们所要产生的可执行文件的文件名.如果你要产生多个可执行文件,那么在各个名字间用空格隔开.

helloworld_SOURCES

这个是指定产生“helloworld”时所需要的源代码.如果它用到了多个源文件,那么请使用空格符号将它们隔开.比如需要 helloworld.h,helloworld.c那么请写成helloworld_SOURCES= helloworld

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号