Linux软件源码编译安装

原创 2015年07月08日 20:44:25

一,源代码与可执行程序

由源代码到可执行程序,主要经历了一下过程(《深入理解计算机系统》):

* 预处理:修改原始c程序,读取文件中外引的内容,得到另一个c程序;
* 编译阶段:将c程序翻译成汇编程序;
* 汇编阶段:将汇编程序翻译成机器指令;
* 链接阶段:将预编译好的标准文件合并到目标文件中;

注:
* linux上最标准的语言是c,gcc是不错的编译器;
* file可以看文件类型,LSB executable是可执行的标志;
* 系统调用比库函数更加底层,是unix内核直接提供的入口点,不过从用户的角度并没有什么区别;

二,make和configure

* 对于一个文件众多、关系复杂的大型软件,在编译时处理源码之间的依赖使得编译过程非常复杂。make就提供了一个根据相关依赖关系说明,依次编译所有文件的功能。也就是说,只要编写一个规则文件,表明源码文件之间的依赖,然后执行make,然后biubiubiu,就编译好了。这个文件文件叫Makefile。
* 接下来的问题是Makefile怎么写,一般软件发布商都会提供一个程序,会自动检测目标系统的安装环境并生成makefile,毕竟每个linux系统的环境是不同的嘛。通常这个文件名为configure或者config.

三,Tarball

 其实这就是tar,文件打包和压缩。

四,安装的基础操作:

* 取的源文件,解压缩;
* 查看INSTALL/README;
* 建立makefile:以自动检测程序(configure或者config)检测操作环境,并建立Makefile这个文件;
* 编译:make;
* 安装:make install将文件安装到正确的路径;

五,函数库管理

 函数库分为动态库和静态库:

* 静态库:
* 
    * 扩展名为a;
    * 在编译时直接整合到执行程序中,所以利用静态库编译的文件会比较大;
    * 最大的有点就是可以独立执行,不需要再向外部要求读取函数库的内容;
    * 如果函数库升级,需要重新编译所有以静态库方式引用此函数库的执行文件,局限性比较大;

* 动态库:
* 
    * 扩展名为so
    * 与静态库不同,不包含函数库的内容,只包含指向的位置的一个指针;
    * 不能独立执行,依赖于指针指向的函数库;
    * 升级比较简单,根本不需要重新编译可执行文件;

Linux下获取依赖包而不安装的方法

1.安装epel-relaese-6.78.noarch包 sudo rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6...

CentOS Linux上使用Apache/mono搭建.NET运行环境

Mono是一个跨平台的、开源的.NET开发框架。支持Linux系统,它是Novell公司基于SUSE Linux操作系统开发的。  官网:http://mono-project.com/Main_P...

linux源码包编译安装软件详解

./configure make make install123 源码安装三部曲,一直在使用却一直知其然不知其所以然,今天就说说所以然。  源码到成为可运行程序经历了一下步骤 源码–...

Linux软件管理之RPM、YUM、源码编译安装

在Linux系统上管理软件需要通过程序包管理器来实现。程序包管理:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装、升级、卸载和查询等管理操作;常用的有RPM、Y...
  • Z_YTTT
  • Z_YTTT
  • 2016年11月03日 13:51
  • 334

linux软件源码的编译安装

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhangpeichuan.blog.51cto.com/2988189/55...

linux源码包编译安装软件详解

./configure make make install源码安装三部曲,一直在使用却一直知其然不知其所以然,今天就说说所以然。 源码到成为可运行程序经历了一下步骤 源码–>预处理–>编译–>汇...
  • shooke
  • shooke
  • 2017年07月21日 00:27
  • 320

Linux如何编译安装源码包软件

一、什么是源码包软件;顾名思义,源码包就是源代码的可见的软件包,基于Linux和BSD系统的软件最常见;在国内源可见的软件几乎绝迹;大多开源软件都是国外出品;在国内较为出名的开源软件有fcitx;lu...

Linux入门之源码编译安装配置apache---“风一样的软件安装“

在来到马哥教育之前,我只在Windows上安装过软件。昨天,就在昨天,才知道,真正的软件安装是什么。一切都可以自己定制,不会出现莫名其妙的问题,一切都可以追根溯源,一切都在掌控之中。再也不用担心注册表...

Linux软件安装之Yum及源码编译安装

一.Yum软件包管理 1.准备Yum软件仓库 1)Yum机制概述 Yum,Yellowdog Updater Modified  基于RPM包构建的软件更新机制  自动解决软件包依赖关系  ...

Linux-软件安装管理rpm/yum/源码包编译安装

1 软件包管理简介   1.1 源码包(源代码包)        优点:开源,可以修改源代码。可以自由选择所需功能。软件是编译安装,编译环境和运行环境是同一个环境,所以更加适合自己的系统,运行更稳定高...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux软件源码编译安装
举报原因:
原因补充:

(最多只允许输入30个字)