日期:2014-05-16  浏览次数:20573 次

Linux的软件源代码包编译安装,make

源代码包编译安装步骤

1 下载软件源代码包,解压并移动到/usr/local/src/路径下

2 进入源代码路径,查阅INSTALL或README文件

3 根据INSTALL或README的内容查看并安装好一些相依性软件

4 configure/config文件,执行侦测系统环境,并自动生成Makefile文件

5 Makefile/makefile文件,记录了源代码如何编译的详细信息

6 gcc编译器,编译环境

7 make命令,依据Makefile文件的定义进行编译或安装

?

Makefile基本语法

1 target与目标文件之间需要":"分隔,每个target表示一个动作?

2 命令行必须要以tab为开头

3 变量与变量内容以"="分隔,两边可以具有空格

4 运用变量时,以$(变量)或${变量}使用

5 在该shell的环境变量是可以被使用的,如CFLAGS

6 在指令列模式可以设置变量

7 $@代表目前的target

?

源代码编译安装常用命令

./configure

侦测系统环境,并生成Makefile文件

configure可以通过--prefix指定安装路径

make clean

执行Makefile中clean部分的工作

删除以前编译生成的文件

make

执行Makefile中预设工作进行编译

make install

执行Makefile中install部分的工作

将编译成功的文件安装到预定的路径下

?

gcc简单用法

gcc -c hello.c 仅将源代码编译成目标文件
gcc -O?-c?hello.c? 编译时,根据环境给予优化执行速度

gcc sin.c -lm -L/usr/lib -I/usr/include?

编译时,设定函数库的路径和头文件路径
gcc -o hello hello.c 指定二进制文件的名字
gcc -o hello hello.c -Wall -Wall,编译过程会比较严谨,会显示警告信息

?

其他相关命令

patch 更新补丁,也可以还原
ldconfig

将指定的动态函数库加载到缓存中,加快函数库的读取速度

/etc/ld.so.conf设置那些动态函数库路径需要加载

/etc/ld.so.cache记录已经保存在缓存中的动态函数库

ldd 显示程序或函数库的依赖性,需要调用哪些函数库

md5sum

sha1sum?

以md5检验文件完整性

以sha1检验文件完整性

?

?