详情请参见《跟我一起写Makefile》
Makefile:
使用make编译软件源码包一般步骤是:
#./configure (生成Makefile文件)
#make clean (进行清理工作)
#make (编译源文件)
#make install (安装可执行文件)
我们要写一个Makefile文件来告诉make命令如何编译和链接我们的文件。
Makefile 书写规则
目标:依赖文件列表
<Tab>命令列表
vi Makefile 或 vi makefile 最好用M,新建一个Makefile文件,在其中编写
如: main: main.c file1.o file2.o
gcc –o main main.c file1.o file2.o
file1.o: file1.c
gcc –c –o file1.o file1.c
file2.o: file2.c
gcc –c –o file2.o file2.c
当一行写不下时,可以用\ 来换到下一行写
1. 命令一定以tab开头
2. 默认make第一个目标
3. 不用写.h文件,C程序编译过程
4. 不要一个目标依赖多个.c文件
变量:就像C中的宏定义 声明:变量名=变量值
变量在声明时应赋初值,在使用时,在变量名前加上$号,最好用小括号()把变量括起来:如:$(OBJECT)
Makefile的自动推导规则,只要make看到 .o文件,就自动把 .c文件加在依赖关系中,不用每个 .o后面都写编译命令。
伪目标:不是一个真正的文件明,执行它后面所规定的命令
如: clean:
rm *.o main
执行 make clean 就会把所有目标文件和 main这个可执行文件删除
install:
cp main /bin
执行 make install 就会把可执行文件加到环境变量中,然后直接输入main就能执行该程序
也可以在前面加上 .PHONY: clean 说明clean 是一个伪目标
在每条命令前面加上 @ 就不会显示该指令,只执行。如:@rm *.o main 执行时不会显示该语句。 echo 回显示字符,如果想显示该命令 就这样写:@echo Install!
RPM包的安装方法:
rpm(redhat package manager)是RedHat公司开发的软件包安装和管理程序,它以数据库的形式来记录安装软件的信息.
rpm软件包通常具有类似foo-1.0-1.i386.rpm的文件名,其中包括软件包的名称(foo)、版本号(1.0)、发行次数(1)、硬件平台(i386)、rpm(扩展名)
安装: rmp -ivf 文件全名
卸载: rmp –e 文件名
查询软件包 rmp –qi 文件名
...