linux 用户空间通过makefile向程序传递参数

一. 用户空间

     因为实际上进行预处理的只是Gcc工具,而make工具只是一个解决依赖关系的工具。所以问题就简化成如何通过make向gcc传递参数。
     通过简单的例子来说明:
hello.c
  1. #include <stdio.h>

  2. void main(void) {
  3. #ifdef DEBUG
  4.      printf("you ask for debug!\n");
  5. #endif
  6.      printf("we must say goodbye\n");
  7.      return;
  8. }
Makefile:
  1. ifeq ($(DEBUG),y)
  2. CFLAGS := $(CFLAGS) -DDEBUG
  3. endif

  4. hello: hello.c
  5. $(CC) $(CFLAGS) $< -o $@
执行过程:
  1. [ville@localhost test]$ ls
  2. hello.c Makefile
  3. [ville@localhost test]$ make
  4. cc hello.c -o hello
  5. [ville@localhost test]$ ./hello
  6. we must say goodbye
  7. [ville@localhost test]$ rm hello
  8. [ville@localhost test]$ ls
  9. hello.c Makefile
  10. [ville@localhost test]$ make DEBUG:=y
  11. cc -DDEBUG hello.c -o hello
  12. [ville@localhost test]$ ./hello
  13. you ask for debug!
  14. we must say goodbye
  15. [ville@localhost test]$
通过以上的简单例子说明如何通过宏开关进行条件编译。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring---基于Spring IOC的小程序

实现的功能以及各文件间的关系 IHelloMessage&#xff1a;一个接口&#xff0c;用于定义输出问候信息。 HelloWorld、HelloChina&#xff1a;接口的实现类。在这里表示人在不同的地方 Person&#xff1a;一个人物类&#xff0c;调用IHelloMessage接口&#xff0c;向用户输出问候…

Web开发者不可不知的16条原则

HTML已经走过了近20的发展历程。从HTML4到XHTML&#xff0c;再到最近十分火热的HTML5&#xff0c;它几乎见证了整个互联网的发展。但是&#xff0c;即便到现在&#xff0c;有很多基础的概念和原则依然需要开发者高度注意。下面&#xff0c;小编向大家介绍这些应该遵循的开发原则…

MIPI DSI协议介绍

原文地址&#xff1a;http://blog.csdn .NET/qq160816/article/details/19555957 一、MIPI MIPI&#xff08;移动行业处理器接口&#xff09;是Mobile Industry Processor Interface的缩写。MIPI&#xff08;移动行业处理器接口&#xff09;是MIPI联盟发起的为移动应用处理器制…

NSArray、NSDictionary、NSString存储、删改、遍历

NSString 创建一个NSString实例&#xff1a;NSString *str “this is string”;//字面量语法 常用API&#xff1a; stringWithFormat //创建动态字符串 -&#xff08;NSUInteger&#xff09;length //获取字符的数量 -isEqualToString: //判断两个字符串是否相等 -uppercaseSt…

2018.11.14成立我的博客

2018.11.14成立我的博客转载于:https://www.cnblogs.com/zengxx/p/9957509.html

130242014018-郑志良-第2次实验

一、实验目的 1&#xff0e;熟悉体系结构的风格的概念 2&#xff0e;理解和应用管道过滤器型的风格。 3、理解解释器的原理 4、理解编译器模型 二、实验环境 硬件&#xff1a; 软件&#xff1a;Python或任何一种自己喜欢的语言 三、实验内容 1、实现“四则运算”的简易翻译器。…

Hi3516A开发--挂载SD卡和U盘

一、SD卡 1、通过fdisk -l命令确认板子上的Linux系统是否识别SD卡 / # fdisk -l Disk /dev/mmcblk0: 63.8 GB, 63864569856 bytes 255 heads, 63 sectors/track, 7764 cylinders Units cylinders of 16065 * 512 8225280 bytes Device Boot Start …

【BZOJ 4170】 4170: 极光 (CDQ分治)

4170: 极光 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 121 Solved: 64Description "若是万一琪露诺&#xff08;俗称rhl&#xff09;进行攻击&#xff0c;什么都好&#xff0c;冷静地回答她的问题来吸引她。对方表现出兴趣的话&#xff0c;那就慢慢地反问。在她考…

自动生成web服务器日志解析规则

2019独角兽企业重金招聘Python工程师标准>>> 当前web服务器的多样化使得访问日志的数据清洗变得越来越复杂&#xff0c;企业需要投入专业的数据清洗人员编写数据清洗规则&#xff08;解析规则或者解析正则&#xff09;&#xff0c;或者需要关心web服务器访问日志的生…

mybatis一级缓存二级缓存

一级缓存 Mybatis对缓存提供支持&#xff0c;但是在没有配置的默认情况下&#xff0c;它只开启一级缓存&#xff0c;一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下&#xff0c;我们使用同一个SqlSession对象调用一个Mapper方法&#xff0c;往往只执…

CMOS Sensor的调试分享

目前&#xff0c;包括移动设备在内的很多多媒体设备上都使用了摄像头&#xff0c;而且还在以很快的速度更新换代。目前使用的摄像头分为两种&#xff1a;CCD(Charge Couple Device电荷偶合器件)和 CMOS(Complementary Metal Oxide Semiconductor互补金属氧化物半导体)。这两种各…

利用反射修改final数据域

当final修饰一个数据域时&#xff0c;意义是声明该数据域是最终的&#xff0c;不可修改的。常见的使用场景就是eclipse自动生成的serialVersionUID一般都是final的。 另外还可以构造线程安全&#xff08;thread safe&#xff09;的immutable类&#xff0c;比如String&#xff0…

mysql简单创建数据库权限(待修改备注)

CREATE DATABASE web DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;一、环境&#xff1a;CentOS 6.8mysql 5.6二、背景给外包的工作人员提供我司某台服务器的 mysql 中某个数据库的访问权限。之所以要做限制&#xff0c;是防止他们对我司其他的数据库非法进行操作。三、…

Centos 能ping通域名和公网ip但是网站不能够打开,服务器拒绝了请求。打开80端口解决。...

博客搬迁&#xff0c;给你带来的不便&#xff0c;敬请谅解&#xff01; http://www.suanliutudousi.com/2017/10/29/centos-%E8%83%BDping%E9%80%9A%E5%9F%9F%E5%90%8D%E5%92%8C%E5%85%AC%E7%BD%91ip%E4%BD%86%E6%98%AF%E7%BD%91%E7%AB%99%E4%B8%8D%E8%83%BD%E5%A4%9F%E6%89%93…

ISP 图像传感器camera原理

1、Color Filter Array — CFA 随着数码相机、手机的普及&#xff0c;CCD/CMOS 图像传感器近年来得到广泛的关注和应用。 图像传感器一般都采用一定的模式来采集图像数据&#xff0c;常用的有 BGR 模式和 CFA 模式。BGR 模式是一种可直接进行显示和压缩等处理的图像数据模式&am…

51nod 1027 大数乘法

1027 大数乘法基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 0 难度&#xff1a;基础题收藏关注给出2个大整数A,B&#xff0c;计算A*B的结果。 Input第1行&#xff1a;大数A 第2行&#xff1a;大数B (A,B的长度 < 1000&#xff0c;A,B > 0&#xff…

file mmap

do_set_pmd统计参数只会在这里设置&#xff1a; add_mm_counter(vma->vm_mm, MM_FILEPAGES, HPAGE_PMD_NR);但是这貌似都是处理大页的情况哪&#xff0c;小页呢&#xff1f; alloc_set_pte中有函数&#xff1a;inc_mm_couter_fast(vma->vm_mm, mm_couter_file(page)&…

Linux链接库三(C跟C++之间动态库的相互调用)

http://www.cppblog.com/wolf/articles/74928.html http://www.cppblog.com/wolf/articles/77828.html http://www.jb51.net/article/34990.htm C和C之间库的互相调用 extern "C"的理解&#xff1a; 很多人认为"C"表示的C语言&#xff0c;实际并非如此&…

C#如何开发多语言支持的Winform程序

C# Winform项目多语言实现(支持简/繁/英三种语言)有很多种方案实现多语言&#xff0c;我在这里介绍一种最简单最容易理解的&#xff0c;作为教学材题应该从通俗易懂入手。在写这篇文章之前&#xff0c;本来想用枚举窗体对象成员的方式设置语言&#xff0c;但是找不到源代码了&a…

Alpha 冲刺 (2/10)

Alpha 冲刺 &#xff08;2/10&#xff09; 队名&#xff1a;第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬&#xff08;组长&#xff09; 过去两天完成了哪些任务&#xff1a; 文字/口头描述&#xff1a; 1、学习qqbot库&#xff1b; 2、实时保存…