Makefile 编写实例
make命令常用的三个选项:
1.-k:它的作用是让make命令在发现错误的时候仍然继续执行.我们可以利用这个选项在一次操作中发现未编译成功的源文件.
2.-n:它的作用是让make命令输出将要执行的操作步骤,而不是真正执行这些操作.
3.-f <filename>:它的作用是告诉make命令将哪个文件作为makefile文件.如果未使用这个选项,make命令将依次查找当前目录下的makefile文件,Makefile文件.
Makefile文件中,将第一个目标定义为all,然后列出其他从属目标,这样可以明确地告诉make命令,在未指定特定目标的时候,默认情况下应该创建哪个目标.
all: myapp
#which compiler, 符号#表示注释.
CC = gcc #定义一个宏,用$(CC)引用
#Where to install
INSTDIR = /usr/local/bin
#Where are include files kept
INCLUDE = .
#Options for development
CFLAGS = -g -Wall -ansi myapp: main.o .o .o
$(CC) -o myapp main.o .o .o #必须以tab键开头,空格不行
main.o: main.c a.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c main.c
.o: .c a.h b.h c.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c .c
.o: .c a.h b.h c.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c .c clear:
#rm命令以-开头,含义是让make命令忽略rm命令执行的结果.
-rm main. .o .o
install: myapp
#必须在每行后面添加反斜杠\,让所有这些shell脚本命令在逻辑上处于同一行.
#下面这个命令以@开头,表示make在执行这些规则之前不会在标准输出上显示命令本身.
@if [ -d $(INSTDIR) ]; \
then \
cp myapp $(INSTDIR); \
chomd a+x $(INSTDIR)/myapp; \
chomd og-w $(INSTDIR)/myapp; \
echo "Installed in $(INSTDIR)"; \
else \
echo "Sorry, $(INSTDIR) does not exit"; \
fi
下面三个命令:
make
make clear
make install
Makefile 编写实例的更多相关文章
- Yocto开发笔记之《Makefile编写》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...
- Make和Makefile编写(详见GCC手册)
Makefile和Make Rules 多模块软件.依赖树和Make 默认规则 Make使用程序对简单变量的支持 内建变量 虚目标 特殊目标 一般性语法错误及其纠正措施 命令行的使用和调试 Makef ...
- linux 下C语言编程库文件处理与Makefile编写
做开发快3年了,在linux下编译安装软件算是家常便饭了.就拿gcc来说,都有不下10次了,可基本每次都会碰到些奇奇怪怪的问题.看来还是像vs.codeblocks这样的ide把人弄蠢了.便下定决心一 ...
- 单目录下多文件 makefile编写
makefile很久就接触过了,但是一直没怎么深入的去学习和总结:在项目中我也只是看看makefile或者修改部分语句,全部自己动手写的话还真没有:知识在于沉淀,这句说的非常好,所以现在把自己理解的东 ...
- linux --> Makefile编写
Makefile编写 单目录 测试程序在同一个文件中,共有func.h.func.c.main.c三个文件,Makefile写法如下所示: CC = gcc CFLAGS = -g -Wall mai ...
- Linux——makefile编写
以前对makefile的编写,限于刚开始接触,我都比较局限一些死板的格式,有时候就会显得有些繁琐.在进一步了解一些系统编译和链接的知识后,对makefile编写流程有了一些新的认识,所以来此梳理梳理, ...
- 如何将多个C文件链接在一起----Makefile编写及make指令
需使用GCC编译器,关于MinGW的安装指南:https://people.eng.unimelb.edu.au/ammoffat/teaching/20005/Install-MinGW.pdf 单 ...
- Windows 下的 Makefile 编写
Windows 下的 Makefile 编写(一)Makefile的基本规则 作者:cntrump Makefile对于很多人来说是陌生的,特别是习惯于使用 IDE 的人来说,似乎没有听说过 Make ...
- [动态库]动态库生成和使用以及Makefile编写
转自:https://www.cnblogs.com/ljtknowns/p/5647793.html 文件目录结构如下 1 dynamiclibapp.c 2 Makefile 3 comm/inc ...
随机推荐
- 用MATLAB进行数据分析
- 30个php操作redis常用方法代码例子【转】
背景:redis这个新产品在sns时很火,而memcache早就存在, 但redis提供出来的功能,好多网站均把它当memcache使用,这是大才小用,这儿有30个方法来使用redis,值得了解. 这 ...
- 背包dp
一大波模板正在靠近 1.01背包 问题:有n件物品和一个容量为v的背包,第i件物品的费用(即体积)是w[i],价值是v[i],求解将哪些物品装入背包可使这些物品的费用和不超过背包容量,且价值总和最大. ...
- Tyvj P1520 树的直径
P1520 树的直径 http://www.tyvj.cn/p/1520 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 树的直径,即这棵树中距离最远的两个结 ...
- IT兄弟连 JavaWeb教程 AJAX以及JSON字符串经典案例
案例需求:客户端发送AJAX请求服务器端获取用户信息的数据. 案例实现: 在服务器端要将Java对象转换成JSON字符串,如果使用拼接JSON字符串的方式非常繁琐,并且非常容易出错,所以一般会借助第三 ...
- HTML5元素拖放设置总结
将元素图片放入div盒子内 1.首先设置元素为可拖放:在img标签内加入draggable=”true”. <img draggable="true"> 2.设置元素的 ...
- linux下提示/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found 解决办法
1.查看gcc版本中包含哪些库. strings /usr/lib64/libstdc++.so.6 | grep GLIBC GLIBCXX_3. GLIBCXX_3.4.1 GLIBCXX_3.4 ...
- python进阶08 MySQL基础补充
python进阶08 MySQL基础补充 本次课程都是基于三张表格的使用 一.子查询 #如何找到‘张三’的成绩 #思路:先找到张三的学号,在拿这个张三的学号到成绩表里面去匹配,得出成绩 #如何用一条查 ...
- G.点我
链接:https://ac.nowcoder.com/acm/contest/903/G 题意: X腿与队友到河北省来参加2019河北省大学生程序设计竞赛,然而这场比赛的题目难度实在是太高了.比赛开始 ...
- Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) C
You are given set of n points in 5-dimensional space. The points are labeled from 1 to n. No two poi ...