Makefile文件基本格式
以下是Makefile的基本模板
#指定编译器
CC = g++
#指定编译参数
CFLAGS = -std=c++11
#指定头文件路径,此处用于指定非标准库的头文件路径
INC = -I./ -I /usr/include
#指定要链接的动态库或静态库 -L是指定动态库路径,非标准的动态库需要此参数
LIBS = -lm -ldl -L/mylibs/xxx -lxxx
#把上面放一起
CXXFLAGS = ${CFLAGS} ${INC} ${LIBS}
#指定生成可执行文件名称
EXEC = a.out
#指定由哪些文件来生成可执行文件
OBJS = xxx1.o xxx2.o
#make执行动作
${EXEC} : ${OBJS}
${CC} -o $@ $^
#make clean动作
clean:
rm -rf ${OBJS}
#中间文件的生成
%.o:%.c
$(CC) $(CXXFLAGS) $(INC) -o $@ -c $<
不生成中间.o文件
#指定编译器
CC = g++
#指定编译参数
CFLAGS = -std=c++11
#指定头文件路径,此处用于指定非标准库的头文件路径
INC = -I./ -I /usr/include
#指定要链接的动态库或静态库 -L是指定动态库路径,非标准的动态库需要此参数
LIBS = -lm -ldl -L/mylibs/xxx -lxxx
#把上面放一起
CXXFLAGS = ${CFLAGS} ${INC} ${LIBS}
#指定生成可执行文件名称
EXEC = a.out
#指定由哪些文件来生成可执行文件
COBJS = xxx1.c xxx2.c
#make执行动作
all:
$(CC) -o $(EXEC) $(COBJS) $(CXXFLAGS)
#make clean动作
clean:
rm -rf ${OBJS}
关于生成 **.o 文件(只编译未链接文件);若是在大型项目中,只修改了其中一个文件的内容,那么没必要全部文件重新编译,只需编译修改部分即可。此时就推荐使用先编译生成 *.o文件 ; 再链接。
Makefile文件基本格式的更多相关文章
- Makefile文件学习总结
Makefile文件相当于是一种脚本编程语言,目的是实现自动化编译.编写makefile文件的过程中可以使用变量.控制结构和函数等一般编程语言的特性. Makefile文件的组成内容.makefile ...
- linux中Makefile文件相关内容
第一章.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional(专业)的程序员,m ...
- C++学习笔记25:makefile文件2
Makefile文件语法 行解析:命令按行解析 命令行的行首字符为Tab键,其他行的行首字符不得为Tab键,但可以使用多个空格缩进 换行:命令太长时,行尾使用"\"换行 注释:行首 ...
- C++学习笔记24:makefile文件
makefile make命令:负责c/c++程序编译与链接 make根据指定命令进行建构 建构规则文件:GNUmakefile , makefile,Makefile makefile 文件格式 m ...
- Linux内核Makefile文件(翻译自内核手册)
--译自Linux3.9.5 Kernel Makefiles(内核目录documention/kbuild/makefiles.txt) kbuild(kernel build) 内核编译器 Thi ...
- zz android 系统 makefile文件(Android.mk)组织结构
Android.mk脚本结构 下面是main.mk文件包含关系,本文档主要说明的就是这些文件里到底做了什么.(这个文件被根目录下的makefile文件包含) 一. main.mk 1.检查版本 ...
- 例解 autoconf 和 automake 生成 Makefile 文件
本文介绍了在 linux 系统中,通过 Gnu autoconf 和 automake 生成 Makefile 的方法.主要探讨了生成 Makefile 的来龙去脉及其机理,接着详细介绍了配置 Con ...
- 怎样写Makefile文件(C语言部分)
本文摘抄自"跟我一起写Makefile ",只是原文中我自己感觉比较精要的一部分,并且只针对C语言,使用GCC编译器. 原文请看这里:http://wiki.ubuntu.org. ...
- makefile文件操作大全
Makefile的规则 -- 转自 :http://blog.csdn.net/ruglcc/article/details/7814546/ 在讲述这个Makefile之前,还是让我们先来粗略地看 ...
随机推荐
- c#小知识点总结
实例化实例化就是将抽象变为具体,只说猫是抽象的,但是我要具体到一只单独的老猫A,那么这只猫被实例化.实例化就是一个抽象变具体的过程,也可以说为声明一个变量声明变量. int a=1,这其实也是一个实例 ...
- 如何写出优雅的 Golang 代码
原文: https://draveness.me/golang-101.html Go 语言是一门简单.易学的编程语言,对于有编程背景的工程师来说,学习 Go 语言并写出能够运行的代码并不是一件困难的 ...
- 机甲大师S1机器人编程学习,Windows 10 安装Scratch和简单实例学习
机甲大师S1支持 Scratch 3.0以上版本. Scratch官方网址:https://scratch.mit.edu/ 最新版本为3.4.0 今天在Windows 10上,安装最新版本. 1. ...
- 破解压缩包的几种方式(zip伪加密 爆破 CRC32碰撞 已知明文攻击)
zip伪加密 zip文件是由3部分组成,详见文末 压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志 在压缩源文件数据区有个2字节的 全局方式位标记 ,在压缩源文件目录区也有个2字节的 全局方 ...
- fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC
出现如下错误: fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires ...
- Fundebug前端JavaScript插件更新至1.8.2,修复2个小BUG
摘要: 修复2个BUG,请大家及时更新. Fundebug前端异常监控服务 Fundebug是专业的程序异常监控平台,我们JavaScript插件可以提供全方位的异常监控,可以帮助开发者第一时间定位各 ...
- 指针专题6-空指针NULL和void指针
1 NULL指针 一个指针变量可以指向计算机中任何一块内存,不管该内存有没有被分配,也不管该内存有没有使用权限,只要把地址给他,他就可以指向.C语言没有一种机制保证指向内存的正确性,程序员必须自己提高 ...
- 团队第五次——Alpha2的发布
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 这个作业要求在哪里 https:// ...
- PAT 乙级 1039.到底买不买 C++/Java
题目来源 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少 ...
- 用session实现的用户登陆,客户端是怎样获取到cookie信息的
大家都知道cookie是存在客户端,session存在服务器端.那么客户端具体是怎样获取cookie信息的呢? 更好的阅读体验可访问 这里. 实验环境 实验环境:xampp + Thinkphp5 + ...