Linux系统下安装源码软件的技巧(2)

时间:2018-04-16 21:14来源:网络整理 作者:Linux先生 举报 点击:
make: 如果configure过程正确完成,重庆幸运农场开到晚上几点:那么在源码目录,会生成相应的Makefile文件,Makefile文件简单来说包括的是一组文件依赖关系以及编译链接的相关步骤,事实上

本文地址:http://www.kooct.com/install/soft/2018/0416/19134.html
文章摘要:,朦胧诗不言父母恩勤,藿香陈年同温层。

  如果configure过程正确完成,那么在源码目录,会生成相应的Makefile文件,Makefile文件简单来说包括的是一组文件依赖关系以及编译链接的相关步骤,事实上真正的编译链接工作也不是make所做的,make只是一个通用的工具,一般情况下,make会根据Makefile中的规则调用合适的编译器编译所有与当前软件相依赖的源码,生成所有相关的目标文件,最后再使用链接器生成最终的可执行程序:

  ___FCKpd___6nbsp;make

  make install:

  当上面两个步骤正确完成,代表着编译链接过程已经完全结束,最后要做的就是将可执行程序安装到正确的位置,在这个步骤,普通用户可能没有相关目录的操作权限,临时切换到root是一个不错的选择,“install”只是Makefile文件中的一个标号,“make install”代表着make工具执行Makefile文件中“install”标号下的所有相关操作,如果在configure阶段没有使用“--prefix=http://www.kooct.com/808/opt/XXX”指定应用程序的安装目录,那么应用程序一般会被默认安装到/usr/local/bin,如果/usr/local/bin已经存在于您的PATH中,那么安装已经基本结束:

  #make install

  make clean:

  make uninstall:

  这两个步骤只是安装的后续操作,有一点必须注意,“clean”和“uninstall”也是Makefile文件中相应的两个标号,执行这两个步骤的时候Makefile文件必要保留,“make clean”用来清除编译连接过程中的一些临时文件,“make uninstall”是卸载相关应用程序,与make install类似,make uninstall也需要切换到root执行,不过“uninstall”标号在好多Makefile中都被省略掉了,朋友们完全可以自己在相应的Makefile文件一探究竟。

  Why?

  在这里我尝试着解释一下上面这些步骤存在的理由,从C语言的角度来说,一个程序从源码到正确生成相关的可执行文件,下面这些部分必不可少:源文件,编译器,汇编器,连接器,依赖库,通过上面几个步骤,朋友们应该已经知道,真正执行编译链接操作的步骤只有一个(make),那其他步骤存在的理由何在?

  有一点是肯定的,我在自己的电脑上使用C语言写一些自娱自乐的小程序,也没有用到“configure or make install”之类的命令,顶多自己写个Makefile管理源文件的依赖关系,可是软件开发者不同,他必须考虑到软件的可移植性,他开发的软件不能仅仅就在他自己的pc上跑吧?不同的平台可能连硬件体系结构都不同,这样就导致了Makefile的不可移植性,为了解决这个问题,开发者通常使用autoconf之类的工具生成相应的configure脚本,而configure脚本就是用来屏蔽相应的平台差异,从而正确生成Makefile文件,然后make再根据configure的劳动成果(Makefile)完成编译链接工作。

  至于“install or clean or uninstall”,也只是对应着Makefile文件中不同的规则,关于Makefile的详细信息,朋友们可以自行查阅相关的文档。

  一个例子

  下面是我在自己的pc机上源码安装tar工具的过程,权当做是上面这些步骤的一个具体事例吧:

  [root@localhost ~]# head -n 1 /etc/issueCentOS release 5.4 (Final)[root@localhost ~]# uname -srLinux 2.6.18-164.el5[root@localhost ~]# gcc --versiongcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)Copyright (C) 2006 Free Software Foundation, Inc.

  这个是我的系统信息。

  [root@localhost tools]# pwd/root/tools[root@localhost tools]# lstar-1.23.tar.bz2[root@localhost tools]# tar jxvf tar-1.23.tar.bz2.。。。。。[root@localhost tools]# lstar-1.23 tar-1.23.tar.bz2[root@localhost tools]# cd tar-1.23[root@localhost tar-1.23]# lsABOUT-NLS build-aux configure gnu Makefile.am po srcacinclude.m4 ChangeLog configure.ac INSTALL Makefile.in README testsaclocal.m4 ChangeLog.1 COPYING lib Make.rules rmt THANKSAUTHORS config.h.in doc m4 NEWS scripts TODO

  解压原文件包,可以发现其中包括了configure脚本和README文件。

  [root@localhost tar-1.23]# mkdir -v ~/tarmkdir: 已创建目录 “/root/tar”[root@localhost tar-1.23]# 。/configure --prefix=http://www.kooct.com/711/root/tar.。。。。。[root@localhost tar-1.23]# echo $?

  建立软件安装目录,并configure,检查configure返回结果,为0代表运行成功。

  [root@localhost tar-1.23]# ls -FABOUT-NLS ChangeLog.1 configure.ac m4/ po/ tests/acinclude.m4 config.h COPYING Makefile README THANKSaclocal.m4 config.h.in doc/ Makefile.am rmt/ TODOAUTHORS config.log gnu/ Makefile.in scripts/build-aux/ config.status* INSTALL Make.rules src/ChangeLog configure* lib/ NEWS stamp-h1

  可以看到Makefile文件已经被成功建立。

  [root@localhost tar-1.23]# less Makefile | grep install: || { echo “ERROR: files left after uninstall:” ; install: install-recursiveuninstall: uninstall-recursive

  在建立的Makefile中存在install和uninstall标号

  [root@localhost tar-1.23]#make.。。。。。[root@localhost tar-1.23]#echo &?

  0

  make成功

  [root@localhost tar-1.23]#make install.。。。。。[root@localhost tar-1.23]# ls /root/tarbin libexec sbin share[root@localhost tar]# cd /root/tar/bin[root@localhost bin]# lstar[root@localhost bin]# 。/tar --help.。。。。。[root@localhost tar-1.23]#echo &?

  0

  安装并简单测试成功。

  上面就是Linux下安装源码软件的最简单的方法介绍了,其实源码安装软件没有你想象的那么复杂,只要用对方法,也能很简单的完成软件安装。

推荐内容
重庆幸运农场投注 幸运农场胆拖投注玩法 重庆幸运农场开奖图片 幸运农场破解软件 幸运农场20170310069
全天时时彩计划 4887铁算盘开奖结果 幸运农场三全中中好多 重庆幸运农场大小最长 十一选五中奖概率
幸运农场app 重庆幸运农场开奖结果彩票控 幸运农场夜场好久开始 淘金农场微信群 大乐透杀号定胆
幸运农场3全中走势图 幸运农场中奖表 幸运农场中奖规则 彩票分析软件cpzyrj 幸运农场长龙最多几期
南国彩票论坛七星彩 极速赛车俱乐部 快中彩中奖规则 零点棋牌 排列五开奖号码走势图
上海时时乐走势图 极速赛车游戏 捕鱼达人手机版下载 幸运农场复式玩法 排列五基本走势图
湖北11选5走势图基本 六合彩码报 澳门赌场玩法 大乐透精准预测彩酷酷 幸运飞艇
博彩技巧 广东体育彩票 纸牌21点 博彩网站排名 江苏体育彩票七位数