选择一个目录创建一个Makefile文件;

注意第二行的开头需要时TAB建空开,不要用空格

执行make

make的时候,无论你创建的是makefile还是Makefile都可以识别 ,不在乎开头的字母是否大写。

makefile中的第一个重要概念是目标(target),all就是一个目标,目标名放在“:”前面,名字可以由字母和下划线组成。这里的all目标是一个抽象的概念,在此将它理解为在终端上打印hello world这一行为。

目标和命令组合在一起就形成了一个简单的规则。通过这个规则告诉make要做什么。

一个Makefile可以定义多个目标,在运行make命令时,可以指定具体目标加以选择。在没有指明具体目标时,make将以文件中定义的第一个目标作为这次运行的目标,第一个目标,也被称作默认目标,当make得到目标后,先找到构建目标的对应规则,然后运行规则中的命令来达到构建目标的目的。一个规则中可以根据需要存在多条命令。

更改Makefile的命令为@echo “hello world!”加上一个@会让终端不打印执行的命令,效果就是只显示 hello world字样在终端上。

Makefile初探的更多相关文章

  1. Linux下MakeFile初探

    make是linux下的编译命令,用于编译和生成Linux下的可执行文件.这个命令处理的对象是Makefile,makefile等.由于make的强大解析能力,makefile文件的编写也变得极为简单 ...

  2. 深入浅出Android makefile(1)--初探(转载)

    转载:http://nfer-zhuang.iteye.com/blog/1752368 一.说明 android build system是一个非常庞大的系统,要编译Android工程.修改或新增A ...

  3. hook in PostgreSQL初探

    HOOK IN POSTGRESQL 初探 前言 众所周知,PostgreSQL具有很好的扩展性,是一个可以"开发"的数据库.在PostgreSQL里面,你可以定制你自己的Type ...

  4. 【转】C++ 11 并发指南一(C++ 11 多线程初探)

    引言 C++ 11自2011年发布以来已经快两年了,之前一直没怎么关注,直到最近几个月才看了一些C++ 11的新特性,算是记录一下自己学到的东西吧,和大家共勉. 相信Linux程序员都用过Pthrea ...

  5. Linux0.11之初识Makefile/build.c

    前言 Makefile对于从来没有接触过的人来说是相当别扭的(比如我),但它确实又是非常重要的,它描述了一个Image是如何形成的,理解它也许并不能帮我解决实际问题,而且编写Makefile的工作也许 ...

  6. afl-fuzz技术初探

    afl-fuzz技术初探 转载请注明出处:http://www.cnblogs.com/WangAoBo/p/8280352.html 参考了: http://pwn4.fun/2017/09/21/ ...

  7. 说说Makefile那些事儿

    说说Makefile那些事儿 |扬说|透过现象看本质 工作至今,一直对Makefile半知半解.突然某天幡然醒悟,觉得此举极为不妥,只得洗心革面从头学来,以前许多不明觉厉之处顿时茅塞顿开,想想好记性不 ...

  8. 编写一个通用的Makefile文件

    1.1在这之前,我们需要了解程序的编译过程 a.预处理:检查语法错误,展开宏,包含头文件等 b.编译:*.c-->*.S c.汇编:*.S-->*.o d.链接:.o +库文件=*.exe ...

  9. 编写简单的Makefile文件

    makefile中的编写内容如下: www:hello.c x.h gcc hello.c -o hello clean: rm hello www:hello.c  x.h 表示生成www这个文件需 ...

随机推荐

  1. POJ--2752--Seek the Name, Seek the Fame【KMP】

    链接:http://poj.org/problem? id=2752 题意:对于一个字符串S,可能存在前n个字符等于后n个字符,从小到大输出这些n值. 思路:这道题加深了对next数组的理解.next ...

  2. iOS开发之复制字符串到剪贴板

    概述 一般有邀请复制链接需求功能,把字符串复制到系统剪贴板,供用户粘贴使用链接. 详细 代码下载:http://www.demodashi.com/demo/10714.html 一.主要思路 1.在 ...

  3. R语言-查找满足条件的数并获取索引

    1.在R语言中,怎样找到满足条件的数呢? 比如给定一个向量c2.要求找到数值大于0的数: > c2  [1] 0.00 0.00 0.00 0.00 0.00 0.00 0.06 0.09 0. ...

  4. k8s内核参数调优

    cat /etc/sysctl.conf kernel.core_uses_pid=1 kernel.pid_max=4194303 kernel.ctrl-alt-del=1 # kernel.co ...

  5. iOS获取手机型号,Swift获取手机型号(类似iphone 7这种,检测机型具体型号)

    获取手机设备信息,如name.model.version等, 但如果想获取具体的手机型号,如iphone5.5s这种,就需要如下这种(含Swift和OC两种写法) Swift建议添加到extensio ...

  6. Python 的 pass 语句

    Python pass是空语句,是为了保持程序结构的完整性. pass 不做任何事情,一般用做占位语句. 例子1: if __name__ == '__main__': pass 例子2: # 输出 ...

  7. spring data jpa 小结

    spring data jpa 介绍:  JPA是sun提出的一个对象持久化规范,各JavaEE应用服务器自主选择具体实现,JPA的设计者是Hibernate框架的作者,因此Hibernate作为Jb ...

  8. PostgreSQL安装详细步骤(windows)[转]

    PostgreSQL安装: 一.windows下安装过程 安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程非常简单,过程如下: 1.开始安装: 2.选择程序安 ...

  9. Eclipse智能提示设置

    最近公司电脑上的Eclipse没有了自动提示功能,也不是全部不提示,大多数情况下按下“alt+/”键还会产生提示,但是当我在java项目中邪main方法和syso的时候,“alt+/”则会失效,今天在 ...

  10. Response.Flush() Response.End()的区别

    //Response.Flush() 将缓存中的内容立即显示出来//Response.End()  缓冲的输出发送到客户端  停止页面执行//例://Response.Write("520& ...