makefile文件 makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个shell脚本一样,其中也可以执行操作系统的命令。

makefile带来的好处就是——“自动化编译,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如LinuxGNUmake。可见,makefile都成为了一种在工程方面的编译方法。

RPM安装:二进制格式

源程序-->编译-->二进制格式

有些特性是编译选定的,如果编译未选定此特性,将无法使用;

rpm包的版本会落后于源码包,甚至落后很多;比如:bind-9.8.7, bind-9.7.2,可能会带来安全隐患,所以尽可能会选择源码格式的包

我们就会对软件包进行定制  (定制:手动编译安装)

     make:项目管理工具cc++

     makefile:定义了makegcc,g++)按何种次序去编译这些源文件中的源程序 

 

     automake-->makefiel.in :生成makefile文件

     autoconf-->configure 给项目生成一个脚本(配置当前程序如何编译的程序)

 

     make install   /path/to/file将编译后的文件放在指定的路径下

编译安装的三步骤:

前提是:准备开发环境,开发库,开发工具

安装“ Development Tool”和“Development Libraries

 

makefile浅识_makefile 

查看是否安装

我们拿到的软件通常是压缩格式的,需要解压

#tar    /PATH/TO/PACKAGE_NAME 解压缩

./configure

    --help:获取脚本的使用格式

 

makefile浅识_makefile_02

--prefix=/prth/to/somewhere:指定安装路径

--sysconfdir=/PATH/TO/CONFFILE_PATH

          配置文件路径。默认/etc,

  功能:1、让用户选定编译特性;2、检查编译环境;

 

例:  

# tar xf tengine-1.4.2.tar.gz 展开归档      

# cd tegnine-1.4.2   切换到tegnine-1.4.2下,查看有一个脚本是configure

 

makefile浅识_makefile_03

# ./configure --prefix=/usr/local/tengine  --conf-path=/etc/tengine/tengine.conf

make

make install

# /usr/local/tengine/sbin/nginx

 

*注:

1、修改PATH环境变量,以能够识别此程序的二进制文件路径;

修改/etc/profile文件

/etc/profile.d/目录建立一个以.sh为名称后缀的文件,在里面定义export PATH=$PATH:/path/to/somewhere

2、默认情况下,系统搜索库文件的路径/lib, /usr/lib; 要增添额外搜寻路径:

/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中;

# ldconfig 通知系统重新搜寻库文件

-v: 显示重新搜寻库的过程

3、头文件:输出给系统

默认:/usr/include

增添头文件搜寻路径,使用链接进行:

/usr/local/tengine/include/   /usr/include/

两种方式:

ln -s /usr/local/tengine/include/* /usr/include/ 

ln -s /usr/local/tengine/include  /usr/include/tengine

4man文件路径:安装在--prefix指定的目录下的man目录;/usr/share/man

1man -m /PATH/TO/mAN_DIR COmmAND

2、在/etc/man.config中添加一条MANPATH