仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 889|回复: 9
打印 上一主题 下一主题

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

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 16:13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在学习初期,你一定会遇到很多困难,或者说各种困难,所以你最好先将你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([simserver1.cpp])
AC_CONFIG_HEADER([config.h])
#Checksforprograms.
AC_PROG_CXX
#Checksforlibraries.
#FIXME:Replace`mainwithafunctionin`-lpthread:
AC_CHECK_LIB([pthread],[main])
#Checksforheaderfiles.
AC_CHECK_HEADERS([arpa/inet.hnetinet/in.hsys/socket.h])
#Checksfortypedefs,structures,andcompilercharacteristics.
#Checksforlibraryfunctions.
AC_HEADER_STDC
AC_CHECK_FUNCS([bzeroinet_ntoasocket])
AC_CONFIG_FILES([Makefile])
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([arpa/inet.hnetinet/in.hsys/socket.h])
#Checksfortypedefs,structures,andcompilercharacteristics.
#Checksforlibraryfunctions.
AC_HEADER_STDC
AC_CHECK_FUNCS([bzeroinet_ntoasocket])
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是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-6 03:38:42 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-15 11:18:11 | 只看该作者
要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。
不帅 该用户已被删除
7#
发表于 2015-3-4 11:27:19 | 只看该作者
如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。
莫相离 该用户已被删除
8#
发表于 2015-3-11 19:03:51 | 只看该作者
通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。
因胸联盟 该用户已被删除
9#
发表于 2015-3-19 08:58:33 | 只看该作者
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
分手快乐 该用户已被删除
10#
发表于 2015-3-27 19:07:31 | 只看该作者
在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-29 17:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表