阿里云
发表主题 回复主题
  • 6016阅读
  • 3回复

[分享]ECS--linux中make用法

发帖
145
云币
339
8`;3`lZ  
在我们用源码方式安装软件的时候,最经常使用的编译方式就是make,运行make它会默认的主动的寻找当前目录下的名为Makefile的文件,也就是执行Makefile内的内容,这里列出小例子旨在介绍make的原理和用法! }*R.>jQ+Y  
1、首先编写程式 ?KtvXTy{m  
[root@localhost tmp]# vim HelloWorld.c BRGTCR  
#include <stdio.h> AAld2"r  
int main() )0xEI  
{ |,OTGZgc  
        printf("Hello  wanzi!!\n"); :h)A/k_  
        return 0; +Y|HO[  
}
jj*e.t:F  
[root@localhost tmp]# export PATH=./:$PATH(将当前路径加入PATH,运行执行文件的时候不必再采用./file的形式,二是直接file即可) NJTC+`Hm  
[root@localhost tmp]# gcc -o main HelloWorld.c (测试刚才书写的程式格式有无错误 9G=ZB^  
[root@localhost tmp]# ll(这个就是可执行档) AC9#!# OGB  
-rwxr-xr-x 1 root root 4950 Mar 16 02:54 main x:WxEw>R  
[root@localhost tmp]# main(正常输出,表示没错误) _HkB+D0v  
Hello  wanzi!!
6mbHfL>cO  
[root@localhost tmp]# rm -rf main (为了不干扰下边的实验,删除刚生成的执行档) {glRX R  
2、编写Makefile NK0hT,_  
[root@localhost tmp]# vim Makefile gw`}eA$  
LIBS = -lm -L/lib -L/usr/lib(设立别名,别名一般情况下要求大写字符,但是可以是任何字符,-lm -L/lib -L/usr/lib表明调用函数库) 2gbMUdpp  
OBJECT = HelloWorld.o(这个是执行#gcc -c HelloWorld生成的执行档,上边的实例实际是隐含这一步骤,这里拿出来了) uSi/|  
CFLAGS = -Wall -O(优化参数,如有提示warning可以不用管) C/je5  
main : ${OBJECT}(执行的部分,生成名为main的最终执行档) B)`^/^7  
        gcc -o main ${OBJECT} ${LIBS}(gcc编译的过程) 8GD!]t#  
clean : x#s=eeP1  
        rm -rf main ${OBJECT}(运行#make clean时删除执行过程中的垃圾文件,也就是套件安装成功后遗留的文件)
0kB!EJ<OdG  
[root@localhost tmp]# make(编译,生成类似configure的可执行文件) M=aWL!nJ  
cc -Wall -O   -c -o HelloWorld.o HelloWorld.c 1GL@t?S  
gcc -o main HelloWorld.o -lm -L/lib -L/usr/lib
Cq,hzi-  
[root@localhost tmp]# ll >{]mN5  
-rw-r--r-- 1 root root   74 Mar 16 02:49 HelloWorld.c L?5OWVX!v  
-rw-r--r-- 1 root root  888 Mar 16 03:05 HelloWorld.o
!.ot&EbE  
-rwxr-xr-x 1 root root 5006 Mar 16 03:05 main wf8GH}2A  
-rw-r--r-- 1 root root  148 Mar 16 03:02 Makefile
q$=EUB"C  
[root@localhost tmp]# main(执行结果) }uE8o"q  
Hello  wanzi!!
H21\6 GY  
[root@localhost tmp]# make clean(清除垃圾文件) Ck0R%|  
rm -rf main HelloWorld.o %Pb 5PIk4  
[root@localhost tmp]# ll(再次查询,就只剩下下边的了) \4.U.pKY  
-rw-r--r-- 1 root root  148 Mar 16 03:02 Makefile Jy X7I,0  
-rw-r--r-- 1 root root   74 Mar 16 02:49 HelloWorld.c $N#f)8v  
这个小实例,可以运用到c语言的编程上,同时描述出软件安装的原理!
级别: 新人
发帖
4
云币
9
只看该作者 沙发  发表于: 2015-11-16
ReECSlinux中make用法沙发
厉害是厉害,不过我还是不懂, Upr:sB  
级别: 程序猿
发帖
314
云币
332
只看该作者 板凳  发表于: 2015-11-16
linux下的make需要一本书
级别: 程序猿
发帖
266
云币
352
只看该作者 地板  发表于: 2015-11-16
ReECSlinux中make用法
不错不错
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 30 - 12 = ?
上一个 下一个