由上文表示,软件编译分为预处理-编译-汇编-链接4个步骤,并介绍了使用gcc命令将c语言的源代码编译成可执行文件,现实中的程序包由多个源码文件组成,本文介绍如何将多个源码文件编译成程序包;

C/C++源码编译:使用make项目管理器进行编译,主要有 configure脚本-makefile.in-makefile

相关工具:autoconf:生产configure脚本       automake:生产makefile.in              java源码编译:使用maven

编译安装过程

1、 ./configure 通过选项传递参数,如安装路径,启用特性等个,执行过程会参考Makefile.in文件(模板)生成Makefile文件

选项分类:

安装路径设定:

--prefix=/PATH:指定默认安装位置,默认为/usr/local/

--sysconfdir=/PATH:配置文件安装位置

System types:支持交叉编译

软件特性和相关指定:

Optional Features: 可选特性

--disable-FEATURE

--enable-FEATURE[=ARG]

Optional Packages: 可选包

--with-PACKAGE[=ARG] 依赖包

--without-PACKAGE 禁用依赖关系

注意:通常被编译操作依赖的程序包,需要安装此程序包的“开发”组件,其包名一般类似于namedevel-VERSION

2、make 根据Makefile文件,检测依赖环境,进行构建应用程序

 3、make install 复制文件到安装路径等

编译安装需要依赖相应的工具,需要提前安装:如 gcc make glib 等,可安装开放包组:development tools

编译安装后的配置

1、二进制程序文件目录导入PATH环境变量中或者在环境变量的目录中创建软链接

2、相关用户及文件:开源软件编译完成后,需要创建相关的用户及文件

3、导入帮助手册,编辑/etc/man.config|man_db.conf文件,添加MANPATH

程序包编译安装示例
cmatrix编译安装

查看到github上的cmatrix源码,说明文档中有标准化步骤

31、软件包编译_linux

建立app目录,用于存放该应用,并下载tar包源码

#mkdir /data/app
[10:59:18root@LGW-Linux-7/]#cd /data/app/
[10:59:51root@LGW-Linux-7app]#wget https://github.com/abishekvashok/cmatrix/releases/download/v2.0/cmatrix-v2.0-Butterscotch.tar

31、软件包编译_linux_02

使用tar命令解包,生成目录源码文件

tar xvf cmatrix-v2.0-Butterscotch.tar 

31、软件包编译_linux_03

31、软件包编译_环境变量_04

使用./configure进行配置,指定prefix安装路径

31、软件包编译_环境变量_05

./configure --prefix=/data/app/cmatrix

使用make命令进行编译,出现报错,

31、软件包编译_编译安装_06

使用yum search cruse 查询是否有类似包

31、软件包编译_编译安装_07

31、软件包编译_linux_08

使用make install 进行安装

31、软件包编译_linux_09

查看安装目录具有bin文件等

31、软件包编译_编译安装_10

在PATH环境变量中创建链接文件执行bin下cmatrix可执行文件,即可使用cmatrix命令

ln -s /data/cmatrix/bin/cmatrix /usr/local/bin

31、软件包编译_linux_11

31、软件包编译_编译安装_12

在man帮助文件中添加路径,就可使用帮助

31、软件包编译_编译安装_13