Makefile与export
这里主要说一下在Makefile中如何使用export环境变量(这里只谈论在linux下的,windows的没测试试过)。
需求是,在一个目标中设置一个环境变量,在依赖目标或命令中使用该环境变量。
因为在依赖目标或命令中经常需要根据不同的变量值做不同的处理。
设置环境变量值有三种方法:
- Makefile中直接: export 变量
- 目标命令中,在命令前:变量=值 command
- 单独定义一个目标(不能有命令),目标1: export 变量=值
直接上Makefile
.PHONY: all clean aa t0 t1 t2 t3 t4 t5 t6# test.c
# char* ps = getenv("bb");
# printf("bb=%s\n", ps ? ps : "no bb");# bb=99
export bb=99aa:echo $$bbtest: test.cgcc -o test test.ct0: export bb=00
t0: test aa./testt1: test aabb=11make aa./testt2: testexport bb=22make aa./testt3: testbb=33 make aabb=33 ./testt4: export bb=44
t4: testmake aa./testt5: bb=55
t5: testmake aa./test#多加一种方法,这种可以避免Makefile中有export bb的情况(与t5的差别)
t6: export bb=66
t6: test aa./testclean:rm -f test
简单说一下执行结果:
t0 -> 00, 00
t1 -> 99, 99
t2 -> 99, 99
t3 -> 99, 33
t4 -> 99, 44
t5 -> 99,55
t6 -> 66,66
大概是这么几种情况。
Makefile中把export bb=99注释掉,打开bb=99,运行结果又会有些差别(其中t5差别最大);
两行都注释掉,又会有差别,这些就个人自行去动手体会吧。
最后,各位根据自己的情况去结合使用吧。
(转载请注明出处)
Makefile与export相关推荐
- makefile 的export问题
from http://againinput4.blog.163.com/blog/static/172799491201132693532418/ 1.在(parent,上层的)makefile中e ...
- Makefile中export的用法
在实际的项目中,总不会是只有一个 Makefile 文件,我们会在 Makefile 中调用另外的 Makefile 文件,呈现出 Makefile 的层级结构. 上层 make 过程要将所执行的 M ...
- Makefile的语法
一.介绍 1.makefile的条目组成 Linux中使用make命令来编译程序,而make命令所执行的动作依赖于Makefile文件.最简单的Makefile文件如下: hello: hello.c ...
- Makefile 使用总结【转】
转自:http://www.cnblogs.com/wang_yb/p/3990952.html 1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编 ...
- u-boot Makefile完全解读
编译u-boot的步骤: #make XX_config XX表示某个cpu体系 #make 生成我们需要的u-boot.bin 具体可参考u-boot文件中的README. 1.设置版本 V ...
- 多文件目录下makefile文件递归执行编译所有c文件 很不错
下面是网上找到的,思路很不错,当然也无法满足所有的需求,我执行又修改了一套.解决了下面的方法存在的问题:每次编译都是全编译的问题,解决思路是.o文件需要跟编译的makefile文件同目录. 首先说说本 ...
- Linux 内核顶层Makefile 详解
目录 前602行分析 make xxx_defconfig 过程 Makefile.build 脚本分析 make 过程 built-in.o 文件编译生成过程 make zImage 过程 前几章我 ...
- makefile 文件 ( http://blog.csdn.net/ruglcc/article/details/7814546/ )
makefile三要素:目标,依赖,命令 make -f makefilename 指定makefile文件 (makefile写多行命令时,使用换行符"\") 一.makef ...
- Makefile知识点总结:
#Makefile知识点总结: #一.make的参数: #make -B所有文件都编译 #make -h或者--help帮助文档 #make -t 显示出较新(修改过)的文件 #make -k 即 ...
最新文章
- 入华十年,一家互联网外企的“另类”视频广告模式
- 九 configparser模块
- C++的拷贝构造函数、operator=运算符重载,深拷贝和浅拷贝、explicit关键字
- html字体整体偏移,html/css:在悬停鼠标时增加字体大小的链接时的位置偏移
- vue --- 购物车页面
- 104 权限 sudo 解压缩
- 《循序渐进学Spark》一1.7 本章小结
- php把二维数组变为一维,如何将PHP二维数组转换为一维数组
- chinaunix-索引资料
- 亚马逊云计算业务上半年营收210亿美元
- Spark Mllib里数据集如何取前M行(图文详解)
- 手机自动化测试的原理
- 获取微信公众号文章封面图的方法
- html导航栏背景图片,页面导航栏滚动时改变导航栏背景样式及回到顶部
- 《实现领域驱动设计》 (美)弗农著 14章 应用程序
- 前端不错的相关网站和论坛
- 生成叠加高斯分布噪声的方波
- 企业权限管理系统---用户模块
- python红楼梦人物词频统计_用R进行文本分析初探——以《红楼梦》为例
- 十岁不愁、二十不悔、三十而立、四十不惑、五十知天命、六十耳顺、七十古来稀...
热门文章
- opencv-python透明图和纯白背景图互转
- 非可抢占式和抢占式进程调度的区别是什么?
- Elasticsearch的安装部署
- 阿里云开发者大会,For Every Developer
- 无坚不摧、唯快不破——论响应力、成就感和DEVOPS
- Android Q的适配 华为市场给都代码参考和文档
- 小心!做UI自动化一定要跨过这些坑
- 微博粉丝清理工具丨2023年最新粉丝批量清理_微博怎么批量清理粉丝
- android 评论功能盖楼,微信公众号再添新功能:可对留言“盖楼”评论、投诉及点赞...
- 学摄影:烟花摄影入门技巧