linux 用户空间通过makefile向程序传递参数
一. 用户空间
因为实际上进行预处理的只是Gcc工具,而make工具只是一个解决依赖关系的工具。所以问题就简化成如何通过make向gcc传递参数。
通过简单的例子来说明:
hello.c
- #include <stdio.h>
- void main(void) {
- #ifdef DEBUG
- printf("you ask for debug!\n");
- #endif
- printf("we must say goodbye\n");
- return;
- }
Makefile:
- ifeq ($(DEBUG),y)
- CFLAGS := $(CFLAGS) -DDEBUG
- endif
- hello: hello.c
- $(CC) $(CFLAGS) $< -o $@
执行过程:
- [ville@localhost test]$ ls
- hello.c Makefile
- [ville@localhost test]$ make
- cc hello.c -o hello
- [ville@localhost test]$ ./hello
- we must say goodbye
- [ville@localhost test]$ rm hello
- [ville@localhost test]$ ls
- hello.c Makefile
- [ville@localhost test]$ make DEBUG:=y
- cc -DDEBUG hello.c -o hello
- [ville@localhost test]$ ./hello
- you ask for debug!
- we must say goodbye
- [ville@localhost test]$
通过以上的简单例子说明如何通过宏开关进行条件编译。
linux 用户空间通过makefile向程序传递参数相关推荐
- 稳扎稳打Silverlight(29) - 2.0Tip/Trick之Cookie, 自定义字体, 为程序传递参数, 自定义鼠标右键...
[索引页] [源码下载] 稳扎稳打Silverlight(29) - 2.0Tip/Trick之Cookie, 自定义字体, 为程序传递参数, 自定义鼠标右键, 程序常用配置参数 作者:webabcd ...
- java向应用程序传递参数_Java应用程序中的消息传递主体
java向应用程序传递参数 消息传递是每个Java应用程序的关键方面,尤其是对于涉及企业应用程序集成(EAI)或关注点分离的应用程序,例如多层WEB应用程序. 消息传递可以分为两个主要类别,即同步和异 ...
- Linux 用户空间和内核空间指的是什么?
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间.两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数 ...
- linux 内核将两个设备相关联,linux用户空间和内核空间交换数据
转载地址:http://www.poluoluo.com/server/201107/138420.html 在研究dahdi驱动的时候,见到了一些get_user,put_user的函数,不知道其来 ...
- Linux 用户空间和内核空间
最近在微信群里看到有人提这个问题,然后查了下资料,觉得这篇文章是写得最能让人看懂的,分享给大家. 欢迎大家评论说出自己的见解,让更多的人更容易理解这部分知识. 之前的相关文章 Linux内存,先看这篇 ...
- Linux用户空间将虚拟地址转化为物理地址
目录 引言 地址绑定 MMU(内存管理单元) 基本硬件 进程如何从磁盘映射到内存 磁盘和内存的映射过程 MMU方案 开始编码 创建我们的缓冲区 /proc/[pid]/pagemap 写 /dev/m ...
- Linux用户空间与内核空间(理解高端内存)
目录 Linux内核地址映射模型 Linux内核地址空间划分 Linux内核高端内存的由来 Linux内核高端内存的理解 Linux内核高端内存的划分 常见问题 小结 1.虚拟内核空间到物理空间的映射 ...
- 嵌入式之linux用户空间与内核空间,进程上下文与中断上下文
文章目录 前言 用户空间与内核空间 内核态与用户态 进程上下文和中断上下文 上下文 原子 进程上下文 中断上下文 进程上下文VS中断上下文 原子上下文 前言 之前在学习嵌入式linux系统的时候,一直 ...
- Linux用户空间与内核空间
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数 ...
最新文章
- mysql 5000万条数据库_1亿条数据如何分表100张到Mysql数据库中(PHP)
- Virtex-6中的SelectIO模块
- 期末复习、化学反应工程科目(第八、九章)
- Pixhawk代码分析-姿态解算篇D
- java静态代码块的作用域_java基础之面向对象
- Windows下运行jekyll,编码已不再是问题
- [USACO17FEB] Why Did the Cow Cross the Road I P (树状数组求逆序对 易错题)
- I - Arbitrage(判断是否有无正环 II)
- [mstsc]解决win8 win10 平板无法被mstsc连接的问题
- VS2010 asp.net development server 无法展示svg图片
- Cadence Orcad Capture绘制原理图常用基本操作
- python调用perl_python调用perl脚本
- 惠州VOCs实验室建设:日常废气处理工艺
- 不是有效的win32应用程序
- android9 coloros6版本,OPPO A9系统升级更新ColorOS 6 正式版-A.19固件完整包
- QGIS:让数据随时间动起来
- 中小型企业网络解决方案的设计和实施
- 会员金闪闪动画字体 (CATextLayer + CAGradientLayer)
- 传奇脚本显示服务器开区时间代码,GOM引擎活动页面脚本,传奇私服服务端添加开即时真假半兽人脚本...
- Yii2 User 登录原理
热门文章
- 一些前端开发经典书籍推荐和下载链接分享
- (function ( ){...})( ) IIFE 的原理
- Promise 的基本使用 与 Ajax的jQuery封装
- CQYZOJ P1392 拔河问题
- leetcode jump game ii
- windows phone 8 使用页面传对象的方式 实现页面间的多值传递
- ajax和Java session监听
- 三分钟带你掌握 CSS3 的新属性
- 异步加载js文件并执行js方法:实现异步处理网页的复杂效果
- mysql数据库存储过程及调用方法