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

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

发帖
145
云币
339
!Rt>xD  
在我们用源码方式安装软件的时候,最经常使用的编译方式就是make,运行make它会默认的主动的寻找当前目录下的名为Makefile的文件,也就是执行Makefile内的内容,这里列出小例子旨在介绍make的原理和用法! &! ?eL  
1、首先编写程式 ! v0LBe4  
[root@localhost tmp]# vim HelloWorld.c N.{D$"  
#include <stdio.h> NN`uI6=  
int main() Tu7QCr5*  
{ Ub!(H^zu  
        printf("Hello  wanzi!!\n"); C2Tyoza  
        return 0; ?K\axf>F  
}
mdg i5v  
[root@localhost tmp]# export PATH=./:$PATH(将当前路径加入PATH,运行执行文件的时候不必再采用./file的形式,二是直接file即可) #lW`{i  
[root@localhost tmp]# gcc -o main HelloWorld.c (测试刚才书写的程式格式有无错误 U`m54f@U  
[root@localhost tmp]# ll(这个就是可执行档) E\,-XH  
-rwxr-xr-x 1 root root 4950 Mar 16 02:54 main Ue~CwFOc  
[root@localhost tmp]# main(正常输出,表示没错误) IobD3:D8W  
Hello  wanzi!!
 ][h}  
[root@localhost tmp]# rm -rf main (为了不干扰下边的实验,删除刚生成的执行档) xUistwq  
2、编写Makefile \} :PLCKT  
[root@localhost tmp]# vim Makefile /~f'}]W  
LIBS = -lm -L/lib -L/usr/lib(设立别名,别名一般情况下要求大写字符,但是可以是任何字符,-lm -L/lib -L/usr/lib表明调用函数库) g'qa}/X  
OBJECT = HelloWorld.o(这个是执行#gcc -c HelloWorld生成的执行档,上边的实例实际是隐含这一步骤,这里拿出来了) [1 9,&]z  
CFLAGS = -Wall -O(优化参数,如有提示warning可以不用管) Hg$lXtn]  
main : ${OBJECT}(执行的部分,生成名为main的最终执行档) q#=(e:aCb  
        gcc -o main ${OBJECT} ${LIBS}(gcc编译的过程) 1PV'?tXp(  
clean : <yFu*(Q  
        rm -rf main ${OBJECT}(运行#make clean时删除执行过程中的垃圾文件,也就是套件安装成功后遗留的文件)
:zF,A,)  
[root@localhost tmp]# make(编译,生成类似configure的可执行文件) w=J3=T@TD  
cc -Wall -O   -c -o HelloWorld.o HelloWorld.c n#OB%@]<V  
gcc -o main HelloWorld.o -lm -L/lib -L/usr/lib
%Qdn  
[root@localhost tmp]# ll d4c8~L H-  
-rw-r--r-- 1 root root   74 Mar 16 02:49 HelloWorld.c )f<z% :I+Z  
-rw-r--r-- 1 root root  888 Mar 16 03:05 HelloWorld.o
ah+iZ}E%  
-rwxr-xr-x 1 root root 5006 Mar 16 03:05 main }2<7%FL  
-rw-r--r-- 1 root root  148 Mar 16 03:02 Makefile
&@Be2!%'9K  
[root@localhost tmp]# main(执行结果) wov\kV  
Hello  wanzi!!
JHTSUq  
[root@localhost tmp]# make clean(清除垃圾文件) zv,jM0-  
rm -rf main HelloWorld.o 6.nCV 0xA  
[root@localhost tmp]# ll(再次查询,就只剩下下边的了) Ks`J([(W&  
-rw-r--r-- 1 root root  148 Mar 16 03:02 Makefile xBi' X  
-rw-r--r-- 1 root root   74 Mar 16 02:49 HelloWorld.c U6fgo3RH  
这个小实例,可以运用到c语言的编程上,同时描述出软件安装的原理!
级别: 新人
发帖
4
云币
9
只看该作者 沙发  发表于: 2015-11-16
ReECSlinux中make用法沙发
厉害是厉害,不过我还是不懂, ryUQU^v  
级别: 程序猿
发帖
314
云币
332
只看该作者 板凳  发表于: 2015-11-16
linux下的make需要一本书
级别: 程序猿
发帖
266
云币
352
只看该作者 地板  发表于: 2015-11-16
ReECSlinux中make用法
不错不错
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个