注册 登录
LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! 返回首页

ghn1206的个人空间 http://bbs.linuxtone.org/?41331 [收藏] [复制] [分享] [RSS]

日志

linux编译安装3部曲

热度 5已有 1759 次阅读2014-3-11 16:26 |个人分类:linux服务搭建| linux, make, makeinstall

我们平时编译源码包的时候,会经常用到configure,make,makeinstall等等,却不知道它们的作用是什么,现在我总结了下,希望能共同学习
1.make
根据 makefile制定的规则,将c\c++文件编译成 *.o文件,然后进一步生成可执行文件。

2.make clean
删除源代码( C\C++ code)生成的执行文件和所有的中间目标文件。

3.make depend
一种 makefile的规则,通过扫描仪个目录下的所有 C\C++ 代码,从而判断出文件之间的依赖关系,如 a.cc文件中调用了b.h(如以形势 include<b.h>),如果之后a.cc 文件被改动,那么只需要重新编译 a.cc文件,不需要编译b.h文件。否则所有的文件都需要重新编译。
 

补充:

      一般来说, make其实是make all 的省略; make后面跟的是target ,即你要编译的目标,在 makefile里面会列出这个target依赖于哪几个别的 target,别的target 又依赖于另外的 target,如此“递归”,最终会到依赖的源文件和头文件;当然,也有可能这个 target后面直接就是源文件和头文件 (最简单的情况) make allmake depend 没有本质区别,都是生成某个目标,只是目标名称不同而已;至于编译的结果,就取决于 makefile的写法,如果makefile中目标 all和目标depend 的依赖一样,那么结果也将是相同的。你完全可以修改 makefile,把他们的功能完全弄反。现阶段,很多软件已经不需要或者不支持 make depend了,比如编译 linux 2.6的时候,根本不需要make depend,而早期的 linux 2.4,则一般需要make depend这一步。总之, make的目标和功能完全由makefile决定。 make 可以取代make depend.

一般顺序: ./configure;make clean;make depend;make重新编译后使用make install或者 ./install安装即可。

./configure && make && make install

./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有 CCGCC cc gcc的连接.gcc 是编译器 .),并不是需要CC GCC,它是个shell 脚本。
make是用来编译的,它从Makefile中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 install 不是make 的参数,而是再 makefileMakefile )中型如: install:的语句。如果用make install,那么就执行 install:后面的语句
  

路过

鸡蛋
5

鲜花

握手

雷人

刚表态过的朋友 (5 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2019-7-22 12:10 , Processed in 0.009521 second(s), 9 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部