在我们用源码方式安装软件的时候,最经常使用的编译方式就是make,运行make它会默认的主动的寻找当前目录下的名为Makefile的文件,也就是执行Makefile内的内容,这里列出小例子旨在介绍make的原理和用法!

1、首先编写程式

[root@localhost tmp]# vim HelloWorld.c
#include <stdio.h>
int main()
{printf("Hello  wanzi!!\n");return 0;
}
[root@localhost tmp]# export PATH=./:$PATH(将当前路径加入PATH,运行执行文件的时候不必再采用./file的形式,二是直接file即可)
[root@localhost tmp]# gcc -o main HelloWorld.c (测试刚才书写的程式格式有无错误)
[root@localhost tmp]# ll(这个就是可执行档)
-rwxr-xr-x 1 root root 4950 Mar 16 02:54 main
[root@localhost tmp]# main(正常输出,表示没错误)
Hello  wanzi!!
[root@localhost tmp]# rm -rf main (为了不干扰下边的实验,删除刚生成的执行档)

2、编写Makefile

[root@localhost tmp]# vim Makefile
LIBS = -lm -L/lib -L/usr/lib(设立别名,别名一般情况下要求大写字符,但是可以是任何字符,-lm -L/lib -L/usr/lib表明调用函数库)
OBJECT = HelloWorld.o(这个是执行#gcc -c HelloWorld生成的执行档,上边的实例实际是隐含这一步骤,这里拿出来了)
CFLAGS = -Wall -O(优化参数,如有提示warning可以不用管)
main : ${OBJECT}(执行的部分,生成名为main的最终执行档)gcc -o main ${OBJECT} ${LIBS}(gcc编译的过程)
clean :rm -rf main ${OBJECT}(运行#make clean时删除执行过程中的垃圾文件,也就是套件安装成功后遗留的文件)
[root@localhost tmp]# make(编译,生成类似configure的可执行文件)
cc -Wall -O   -c -o HelloWorld.o HelloWorld.c
gcc -o main HelloWorld.o -lm -L/lib -L/usr/lib
[root@localhost tmp]# ll
-rw-r--r-- 1 root root   74 Mar 16 02:49 HelloWorld.c
-rw-r--r-- 1 root root  888 Mar 16 03:05 HelloWorld.o
-rwxr-xr-x 1 root root 5006 Mar 16 03:05 main
-rw-r--r-- 1 root root  148 Mar 16 03:02 Makefile
[root@localhost tmp]# main(执行结果)
Hello  wanzi!!
[root@localhost tmp]# make clean(清除垃圾文件)
rm -rf main HelloWorld.o
[root@localhost tmp]# ll(再次查询,就只剩下下边的了)
-rw-r--r-- 1 root root  148 Mar 16 03:02 Makefile
-rw-r--r-- 1 root root   74 Mar 16 02:49 HelloWorld.c

这个小实例,可以运用到c语言的编程上,同时描述出软件安装的原理!

linux中make用法相关推荐

  1. Linux中find用法整理

    一.Linux中find常见用法示例 ·find    path    -option    [    -print ]    [ -exec    -ok    command ]    {} /; ...

  2. Linux中EOF用法

    Linux中EOF用法 理解:EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d就代表EOF. EOF一般会配合c ...

  3. Linux中wait用法

    Linux中wait用法: 系统中的僵尸进程都要由wait系统调用来回收. 函数原型: #include<sys/types.h> #include<sys/wait.h> p ...

  4. Linux中find用法

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; #-print 将 ...

  5. linux密码叹号,Linux中“!”感叹号用法技巧大全

    这篇文章主要给大家介绍了关于Linux中"!"你不知道的惊叹用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习 ...

  6. linux中daemonize用法,daemonize Unix系统后台守护进程管理软件

    在我们的工作中,很多时候都需要在linux中后台运行程序, 方法1: nohup & 方法2: daemonize Unix系统后台守护进程管理软件 优点:更加正规 后台运⾏更稳定 git c ...

  7. get在linux中的用法,在Linux中使用GetKeyState(VK_CAPITAL)1

    #include int main() { if ( !GetKeyState(VK_CAPITAL) & 1 ) { printf("caps off"); } else ...

  8. Linux中SCP用法

    在linux中,两台服务器如何互传文件? 如果想拷贝本地文件到另外一台ssh终端,可以使用以下命令: scp +包名 +远程主机名+存放的绝对路径 如 scp shopfront-0.0.1-SNAP ...

  9. linux中gawk用法,Linux - gawk 命令

    gawk 是 awk 的 GUN 版 =========================================== 是一种<模式扫描和处理>语言.它搜索一个或多个文件,查看这些文 ...

  10. linux中mfsort用法,Linux命令――sort

    sort以文件的每一行为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. 用法:sort [OPTION]... [FILE]... 参 数: -b   ...

最新文章

  1. no no no.不要使用kill -9.
  2. PTA数据结构与算法题目集(中文)7-14
  3. Zabbix Python API 应用实战
  4. 使用Windows Mobile Device Center进行手机的同步
  5. Make It Connected
  6. 阿里云安装mysql5.7_同一服务器上二进制安装mysql5.7和mysql5.6
  7. jsp不能使用return时候,如何在出异常时退出,不在向下执行
  8. mysql 语句 not_mysql sql语句 is not 用法是
  9. 正则表达式各种常规应用
  10. Samba 共享目录设置在Home目录下
  11. 【原】115网盘下载地址解析工具(暂停更新)
  12. Java垃圾回收机制(GC)
  13. 老子哲学与太极拳技击
  14. 上海高一计算机奥赛,上海物理奥赛金牌“大神”爱番剧和高达,已保送清华大学姚班...
  15. 618电商平台鏖战,天猫618才是绝对主场
  16. 双路服务器56核系统推荐,华硕发布双路志强主板:最高支持56核,112线程
  17. 阿里云服务器购买折扣优惠券及注意事项
  18. AD633JRZ-ASEMI代理ADI亚德诺AD633JRZ车规级芯片
  19. SQL Server添加MDW性能监控报表
  20. 字节顺序标记(BOM)详解

热门文章

  1. 中国历朝地图[11P]
  2. 平移变换计算机图形学c语言代码,计算机图形学第一次作业——平移,缩放和旋转...
  3. 日本“冷知识”你都知道吗?
  4. setTimeout() 和 setInterval 定时器的使用(带例题)
  5. CRM客户管理系统的重要性体现在哪些方面?
  6. OpenCV入门【C++版】
  7. excel中的抽奖程序
  8. C语言 环境变量配置
  9. 阿帕奇SSL https配置
  10. Java中Integer.valueOf()解读