动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 操作系统 > Linux教程
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Linux教程 ]的信息



本月文章推荐
.Linux下的驱动安装在MC上提供了三.
.关于Linux操作系统中VI编辑器字符.
.如何在Linux操作系统下选择VIM配.
.如何编写Linux设备驱动程序.
.实用技巧:Linux操作系统添加新硬.
.Linux磁盘存储区管理原理与技巧.
.流行版Kubuntu8.04和Xubuntu8.04.
.新版Ubuntu Linux系统威胁Window.
.安装 Linux 无盘工作站.
.Linux环境下发现并阻止系统攻击.
.linux系统如何访问NTFS磁盘.
.Linux系统下使用mtrace进行内存状.
.Ubuntu Linux下Azureus NAT设置问.
.Linux kernel2.6.25 CS8900网卡驱.
.优化Linux系统硬盘的七个实用技巧.
.Linux操作系统中的7件武器详解.
.Ubuntu 8.04 LTS至Ubuntu 11.04 .
.Linux操作系统下重定向命令应用及.
.Linux下Compiz Fusion新特效Stac.
.在Linux操作系统上运行Windows应.

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

发表日期:2008-5-17 |


 

本例假设要产生一个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.h helloworld.c。

如果你在bin_PROGRAMS定义了多个可执行文件,则对应每个可执行文件都要定义相对的filename_SOURCES。

LIBS

这个用来指定链接的程序库。如LIBS += -lpthread,指定链接pthread库。

执行命令:

$vim Makefilemam

进入编辑界面,输入内容如下:

AUTOMAKE_OPTIONS=foreign

bin_PROGRAMS=simserver1 #软件包名称

simserver1_SOURCES=simserver1.cpp  #源文件列表,如果有多个则用空格分开

LIBS += -lpthread #链接pthread库

6.运行automake

执行automake --add-missing来产生Makefile.in。

$automake --add-missing

执行后应该生成Makefile.in文件.

7.运行configure生成Makefile

执行:

$./configure

8.执行make生成可执行文件

$make

执行后应该编译输出simserver1可执行文件.

make还有以下几个命令:

make install可以将simserver1安装到/usr/local/bin目录下;

make clean可清除上次编译结果

make dist可将代码打包成packagename-ver.tar.gz文件

make distcheck用来检查打包的软件包是否正常。

上一篇:Linux系统开防火墙时自动开启相对应端口 人气:327
下一篇:RHEL5 Squid透明代理服务器配置过程解析 人气:619
浏览全部Linux的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-23 Menalto Gallery v2.3 Rc1 多国语
2008-7-23 深度学习网址导航系统 v2.6.1
2008-7-23 因特达crm2008客户关系管理系统
2008-7-23 60度 CMS v1.0 Build 080723
2008-7-23 幻影动漫网视频系统(Ppdong) v1.
2008-7-23 好易祝福墙 2008
2008-7-23 APJE私服发布系统 v2.0 PHP版
2008-7-23 毕业论文在线指导系统源码
2008-7-23 Jacky法律在线网站源码
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵