- -fPIC : 编译共享库(-shared)
- -Wall : 编译后显示所有警告
- -pipe : 使用管道代替临时文件
- -Idir : 将dir加入搜索头文件的路径列表
- -w : 禁止显示所有警告信息
- -Xlinker : 用于链接很多静态库, -Xlinker “-(“ libtest1.a libtest2.a-Xlinker “-)”,如果libtest2.a中使用了libtest1.a中的接口,不使用这个关键字的话,必须将libtest2.a写在libtest1.a前面,加了这个参数之后则没有这个限制
- -lpthread : 多线程链接
- -lcrypto : 链接crypto库,用于加密
- -g : 支持gdb调试用
- $@ : 目标文件
- $^ : 所有依赖文件
- $< : 第一个依赖的文件
- ar rcs : 生成.a文件
- -static : 使用静态编译,把动态库的函数和所依赖的东西都编译进本程序,生成文件会非常大,但运行时不需要任何动态库
- makefile中的命令前要使用tab
- -D : 通过宏定义控制源程序的编译, 在程序中通过#ifdef/#else/#endif来控制
- linux程序安装过程
- ./configure : 用来生成makefile,–prefix用来制定安装的路径,比如:./configure –prefix = /home/work/python, 则执行文件会安装在/home/work/python/bin目录下,资源文件会安装在/home/work/python/share目录下
- make : 编译程序
- make install : 安装
Makefile小结
------ 本文结束 ------