蒙在股里 发表于 2015-1-16 16:13:42

带来一篇Linux下automake软件编译与公布疾速进门

在学习初期,你一定会遇到很多困难,或者说各种困难,所以你最好先将你linux中的重要内容备份,因为,在你学习的过程中,很可能将系统搞废(eg:源混乱等);
本例假定要发生一个simserver1的软件包,源文件只要1个,simserver1.cpp.利用了pthread库。
1.运转autoscan扫描源码目次
实行
$autoscan
实行后天生configure.scan.
2.编纂configure.in文件
步骤1实行后天生了configure.scan,本步骤必要复制一份该文件并定名为configure.in,然后编纂该文件。
命令以下:
$cpconfigure.scanconfigure.in
$vimconfigure.in
用vim编纂器翻开后,文件原内容以下:
configure.scan入手下手
#-*-Autoconf-*-
#Processthisfilewithautoconftoproduceaconfigurescript.
AC_PREREQ(2.61)
AC_INIT(FULL-PACKAGE-NAME,VERSION,BUG-REPORT-ADDRESS)
AC_CONFIG_SRCDIR()
AC_CONFIG_HEADER()
#Checksforprograms.
AC_PROG_CXX
#Checksforlibraries.
#FIXME:Replace`mainwithafunctionin`-lpthread:
AC_CHECK_LIB(,)
#Checksforheaderfiles.
AC_CHECK_HEADERS()
#Checksfortypedefs,structures,andcompilercharacteristics.
#Checksforlibraryfunctions.
AC_HEADER_STDC
AC_CHECK_FUNCS()
AC_CONFIG_FILES()
AC_OUTPUT
configure.scan停止
编纂修正成以下内容:
configure.in入手下手
#-*-Autoconf-*-
#Processthisfilewithautoconftoproduceaconfigurescript.
AC_INIT(simserver1.cpp)#这个宏用来反省源代码地点的路径,放在文件开首
AM_INIT_AUTOMAKE(simserver1,1.0)   #形貌软件包称号及版本号
#Checksforprograms.
AC_PROG_CXX#利用C++
#Checksforlibraries.
#Checksforheaderfiles.
AC_CHECK_HEADERS()
#Checksfortypedefs,structures,andcompilercharacteristics.
#Checksforlibraryfunctions.
AC_HEADER_STDC
AC_CHECK_FUNCS()
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.hhelloworld.c.
假如你在bin_PROGRAMS界说了多个可实行文件,则对应每一个可实行文件都要界说绝对的filename_SOURCES.
LIBS
这个用来指定链接的程序库。如LIBS+=-lpthread,指定链接pthread库。
实行命令:
$vimMakefilemam
进进编纂界面,输出内容以下:
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另有以下几个命令:
makeinstall能够将simserver1安装到/usr/local/bin目次下;
makeclean可扫除前次编译了局
makedist可将代码打包成packagename-ver.tar.gz文件
makedistcheck用来反省打包的软件包是不是一般。
</p>
只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基础。这是相当困难的。

海妖 发表于 2015-1-17 15:09:01

linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!

小女巫 发表于 2015-1-20 19:54:56

为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。

谁可相欹 发表于 2015-1-29 19:33:30

编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。

愤怒的大鸟 发表于 2015-2-6 03:38:42

其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。

飘飘悠悠 发表于 2015-2-15 11:18:11

要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。

不帅 发表于 2015-3-4 11:27:19

如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。

莫相离 发表于 2015-3-11 19:03:51

通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。

因胸联盟 发表于 2015-3-19 08:58:33

Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。

分手快乐 发表于 2015-3-27 19:07:31

在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。
页: [1]
查看完整版本: 带来一篇Linux下automake软件编译与公布疾速进门