阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 7060阅读
  • 3回复

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

发帖
145
云币
341
aSxDfYN=R  
在我们用源码方式安装软件的时候,最经常使用的编译方式就是make,运行make它会默认的主动的寻找当前目录下的名为Makefile的文件,也就是执行Makefile内的内容,这里列出小例子旨在介绍make的原理和用法! ]\oT({$6B  
1、首先编写程式 4GG>n  
[root@localhost tmp]# vim HelloWorld.c A=Hv}lv  
#include <stdio.h> 3^-R_  
int main() 6K<o0=,jm2  
{ kzNRRs\e  
        printf("Hello  wanzi!!\n"); .XRe:\8mc  
        return 0; v}D0t]  
}
Am*lx  
[root@localhost tmp]# export PATH=./:$PATH(将当前路径加入PATH,运行执行文件的时候不必再采用./file的形式,二是直接file即可) \.p; 4V&  
[root@localhost tmp]# gcc -o main HelloWorld.c (测试刚才书写的程式格式有无错误 5JK'2J&  
[root@localhost tmp]# ll(这个就是可执行档) %hw4IcWJ|  
-rwxr-xr-x 1 root root 4950 Mar 16 02:54 main 9V&+xbR&  
[root@localhost tmp]# main(正常输出,表示没错误) uudd'L  
Hello  wanzi!!
Ea'jAIFPpO  
[root@localhost tmp]# rm -rf main (为了不干扰下边的实验,删除刚生成的执行档) :RJo#ape  
2、编写Makefile C!9mygI  
[root@localhost tmp]# vim Makefile GM1.pVb  
LIBS = -lm -L/lib -L/usr/lib(设立别名,别名一般情况下要求大写字符,但是可以是任何字符,-lm -L/lib -L/usr/lib表明调用函数库) ]@Z nP,8  
OBJECT = HelloWorld.o(这个是执行#gcc -c HelloWorld生成的执行档,上边的实例实际是隐含这一步骤,这里拿出来了) 4,h)<(d{  
CFLAGS = -Wall -O(优化参数,如有提示warning可以不用管) }Qe(6'l_  
main : ${OBJECT}(执行的部分,生成名为main的最终执行档) 6#K.n&=*  
        gcc -o main ${OBJECT} ${LIBS}(gcc编译的过程) -"a(<JC^NI  
clean : PYs0w6o  
        rm -rf main ${OBJECT}(运行#make clean时删除执行过程中的垃圾文件,也就是套件安装成功后遗留的文件)
T5e#Ll/  
[root@localhost tmp]# make(编译,生成类似configure的可执行文件) Kb;Pd!Q  
cc -Wall -O   -c -o HelloWorld.o HelloWorld.c U:eX^LE7  
gcc -o main HelloWorld.o -lm -L/lib -L/usr/lib
eT5IL(mH  
[root@localhost tmp]# ll 2@pEiq3  
-rw-r--r-- 1 root root   74 Mar 16 02:49 HelloWorld.c < 1m `  
-rw-r--r-- 1 root root  888 Mar 16 03:05 HelloWorld.o
M"{*))O\-c  
-rwxr-xr-x 1 root root 5006 Mar 16 03:05 main 0T#z"l<L  
-rw-r--r-- 1 root root  148 Mar 16 03:02 Makefile
j)@{_tv6;  
[root@localhost tmp]# main(执行结果) iC^91!<  
Hello  wanzi!!
UzIE,A  
[root@localhost tmp]# make clean(清除垃圾文件) \-{$IC-L  
rm -rf main HelloWorld.o w^ofH-R/  
[root@localhost tmp]# ll(再次查询,就只剩下下边的了) %H&WihQ  
-rw-r--r-- 1 root root  148 Mar 16 03:02 Makefile [q_62[-X  
-rw-r--r-- 1 root root   74 Mar 16 02:49 HelloWorld.c  cC|  
这个小实例,可以运用到c语言的编程上,同时描述出软件安装的原理!
级别: 新人
发帖
4
云币
9
只看该作者 沙发  发表于: 2015-11-16
ReECSlinux中make用法沙发
厉害是厉害,不过我还是不懂, AFvv+ ss  
级别: 程序猿
发帖
314
云币
332
只看该作者 板凳  发表于: 2015-11-16
linux下的make需要一本书
级别: 程序猿
发帖
266
云币
352
只看该作者 地板  发表于: 2015-11-16
ReECSlinux中make用法
不错不错
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)