Linux(17)-Make编译,Configure
Make编译机制,Configure
- 1.Make机制
- demo1.make编译
- demo2.make清理
- demo3:make 安装
- demo4:make 卸载
- 2.configure
- 2.1 Autoconf
- 2.2 软件的源码安装
软件发布的一些基础知识。
内存泄漏–如果一个长时间运行的程序,不断申请新的控价,而且不释放。内存空间被一点一点地消耗光。
内存管理机制
free 命令查看内存使用情况(单位为KB)
发布软件
本机编译得到的二进制文件,需要很多库文件来协助才能运行的起来。
查看程序的依赖库,使用ldd命令。
lld ./rubbish1115
因为需要众多库文件协助,所以在Linux上发布软件时都是发布源码包,然后在目标系统上再编译一遍。
1.Make机制
Make 也是一个程序,用于统筹规划文件编译。通过Makefile来实现统筹规划。能够依据文件修改的时间,智能地判断出哪些模块需要重新编译,重新连接。
windows下的VC也是类似的作用,只不过把他们都用图形界面封装了起来。
make 命令运行的时候,会在当前目录下查抄Makefile 或者 makefile文件。找到就执行,没找到就报错。makefile每一段的格式都类似
目标:原料 <tab>加工方法demo1.make编译
all:main.o part1.o part2.o gcc main.o part1.o part2.o -o mybin main.o:mian.cgcc -c main.c part1.o:part1.cgcc -c part1.c part2.o:part1.cgcc -c part2.cdemo2.make清理
clean:rm ./*.orm mybindemo3:make 安装
将编译好的mybin文件,复制到系统中相应的目录中,完成安装
install:mybincp ./mybin /user/bin/demo4:make 卸载
作为一个标准的GNU软件,生成的makefile中应该高喊uninstall的定义。如果不规范的软件,没有提供uninstall方法,就只能手动删除了。
make uninstall
(瞎猜,盲写)
uninstall:rm /user/bin/mybin2.configure
检查编译的各种条件是否必备,检查各种条件都必备之后,会生成Makefile文件。
铁打的make只有一个,流水的configure每个软件一个。
运行./configure 之后,会检查各种各样的条件,例如 “checking for xxxxx yes/no”, 不是必须的材料没有了也就没有了。如果必须的东西没有了,那么confiugre就会报错并停止。
2.1 Autoconf
自动生成configure文件(几万行,自己敲时不可能了。)
autoscan
# AC_INIT(main.c)--说明这个工程主要的图纸是那个文件. # AM_INIT_AUTOMAKE(rubbish1115,1.0)--说明这个项目的名称,叫做rubbish115, 版本是1.0. # AC_PROG_CC--configure需要检查C语言编译器是否正常. # AC_OUTPUT(Makefile)--configure需要产生的文件叫Makefile.aclocal
3.autoconf-依据configure.in 和aclocal.m4生成configure脚本
4.automake–生成configure脚本能够识别和使用的makefile.in文件(自己写的makefile文件不管用)。需要(人为)提供草稿文件makefile.am。
makefile.am文件内容
Automake主要帮助开发GNU软件的人员来维护软件,所以在执行Automake时,默认会检查目录下是否存在标准GNU软件中应具备的文件,例如NEWS,AUTHOR, ChangeLog等文件。设置foreign,则会忽略对这些文件的检查。
2.2 软件的源码安装
原料都准备好之后,依次运行以下三条命令,就能把软件安装上
./configure
make
make install
总结
以上是生活随笔为你收集整理的Linux(17)-Make编译,Configure的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 在页游中LUA的应用(1)
- 下一篇: linux下的RPC