通用代码——makefile文件
ver=debug
ifeq ($(ver),debug)
TARGET = testmain_d
FLAG=-g -D debug
else
TARGET = testmain_r
FLAG=-O3
endif CC=gcc
SRC_DIR=./ vpath %.c $(SRC_DIR)
SRC_FILES:=$(wildcard $(SRC_DIR)*.c)
SRC_FILES:=$(notdir $(SRC_FILES))
OBJ_FILES:=$(patsubst %.c,%.o,$(SRC_FILES)) $(TARGET):$(OBJ_FILES)
$(CC) -o $@ $(OBJ_FILES) $(OBJ_FILES):%.o:%.c
$(CC) -c $(FLAG) $? -o $@
clean:
-rm -rf *.o
-rm -rf $(TARGET)
这样在代码中有如下代码时
#ifdef debug
printf("============测试Debug\n");
#endif
可以通过makefile来达到编译debug版本或release版本的区别
debug版本 直接make
release版本 make ver=release (写其他都可以除了debug)
参考文章:
(1)http://blog.csdn.net/chaoqunz/article/details/6033660
(2)http://www.cnblogs.com/caosiyang/archive/2012/06/13/2548051.html
备注:从上边拷贝下来代码后,需要把空格符换成制表符tab。大家都懂的~
通用代码——makefile文件的更多相关文章
- 编写一个通用的Makefile文件
		1.1在这之前,我们需要了解程序的编译过程 a.预处理:检查语法错误,展开宏,包含头文件等 b.编译:*.c-->*.S c.汇编:*.S-->*.o d.链接:.o +库文件=*.exe ... 
- Linux C编程学习之开发工具3---多文件项目管理、Makefile、一个通用的Makefile
		GNU Make简介 大型项目的开发过程中,往往会划分出若干个功能模块,这样可以保证软件的易维护性. 作为项目的组成部分,各个模块不可避免的存在各种联系,如果其中某个模块发生改动,那么其他的模块需要相 ... 
- C语言Makefile文件使用
		C语言中代码Makefile文件的写法 单文件,例: #定义变量 CFLAGS=gcc #具体命令都需要一个入口,all: 这个就相当于入口,默认情况,执行第一次入口, #后面执行其他入口进行依赖,如 ... 
- Linux平台Makefile文件的编写基础篇(转)
		目的: 基本掌握了 make 的用法,能在Linux系统上编程.环境: Linux系统,或者有一台Linux服务器,通过终端连接.一句话:有Linux编译环境.准备: ... 
- 如何快速编写大项目的Makefile文件
		在构建C++的后台服务时,经常需要自己来编写makefile文件,而如果没有合适的方法或模板时,编写makefile文件是一件很费时费力的事情.因此,为了帮助程序员高效准确的编写makefile文件, ... 
- 如何编写一个工程文件夹下通用的Makefile
		新建工程文件夹,在里面新建 bsp.imx6ul.obj 和project 这 3 个文件夹,完成以后如图所示: 新建的工程根目录文件夹 其中 bsp 用来存放驱动文件:imx6ul 用来存放跟芯片有 ... 
- linux中Makefile文件相关内容
		第一章.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional(专业)的程序员,m ... 
- Linux内核Makefile文件(翻译自内核手册)
		--译自Linux3.9.5 Kernel Makefiles(内核目录documention/kbuild/makefiles.txt) kbuild(kernel build) 内核编译器 Thi ... 
- 多文件目录下makefile文件递归执行编译所有c文件
		首先说说本次嵌套执行makefile文件的目的:只需make根目录下的makefile文件,即可编译所有c文件,包括子目录下的. 意义:自动化编译行为,以后编译自己的c文件时可把这些makefile文 ... 
随机推荐
- 等和的分隔子集(DP)
			晓萌希望将1到N的连续整数组成的集合划分成两个子集合,且保证每个集合的数字和是相等.例如,对于N=3,对应的集合{1,2,3}能被划分成{3} 和 {1,2}两个子集合. 这两个子集合中元素分别的和是 ... 
- loj #2254. 「SNOI2017」一个简单的询问
			#2254. 「SNOI2017」一个简单的询问 题目描述 给你一个长度为 NNN 的序列 aia_iai,1≤i≤N1\leq i\leq N1≤i≤N,和 qqq 组询问,每组询问读入 l1 ... 
- 解释器模式Interpreter详解
			原文链接:https://www.cnblogs.com/java-my-life/archive/2012/06/19/2552617.html 在阎宏博士的<JAVA与模式>一书中开头 ... 
- P2446 [SDOI2010]大陆争霸
			\(\color{#0066ff}{ 题目描述 }\) 幻想历8012年5月12日深夜,斯普林·布拉泽降下神谕:"Trust me, earn eternal life."克里斯军 ... 
- luogu3704 [SDOI2017]数字表格(莫比乌斯反演)
			link 设\(f_0=0,f_1=1,f_n=f_{n-1}+f_{n-2}(n\ge 2)\) 求\(\prod_{i=1}^n\prod_{j=1}^mf_{\gcd(i,j)}\),多组询问, ... 
- [USACO10OCT]湖计数Lake Counting 联通块
			题目描述 Due to recent rains, water has pooled in various places in Farmer John's field, which is repres ... 
- C. The Fair Nut and String 递推分段形dp
			C. The Fair Nut and String 递推分段形dp 题意 给出一个字符串选择一个序列\({p_1,p_2...p_k}\)使得 对于任意一个\(p_i\) , \(s[p_i]==a ... 
- POJ 1000 A+B
			#include <stdio.h> int main() { int a,b; scanf("%d %d",&a, &b); printf(" ... 
- P4289 [HAOI2008]移动玩具
			传送门 广搜 4*4 的方阵只有 0 和 1 显然可以状态压缩 (如样例的开始状态压缩后就是1111000011100010) 为了加快速度用了双向广搜(顺便学了一下双向广搜) 双向广搜顾名思义 就是 ... 
- centos7-网络与防火墙常用命令
			1.网络配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="static" IPADDR=192.168.163 ... 
