这里主要说一下在Makefile中如何使用export环境变量(这里只谈论在linux下的,windows的没测试试过)。

需求是,在一个目标中设置一个环境变量,在依赖目标或命令中使用该环境变量。

因为在依赖目标或命令中经常需要根据不同的变量值做不同的处理。

设置环境变量值有三种方法:

  1. Makefile中直接: export 变量
  2. 目标命令中,在命令前:变量=值 command
  3. 单独定义一个目标(不能有命令),目标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相关推荐

  1. makefile 的export问题

    from http://againinput4.blog.163.com/blog/static/172799491201132693532418/ 1.在(parent,上层的)makefile中e ...

  2. Makefile中export的用法

    在实际的项目中,总不会是只有一个 Makefile 文件,我们会在 Makefile 中调用另外的 Makefile 文件,呈现出 Makefile 的层级结构. 上层 make 过程要将所执行的 M ...

  3. Makefile的语法

    一.介绍 1.makefile的条目组成 Linux中使用make命令来编译程序,而make命令所执行的动作依赖于Makefile文件.最简单的Makefile文件如下: hello: hello.c ...

  4. Makefile 使用总结【转】

    转自:http://www.cnblogs.com/wang_yb/p/3990952.html 1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编 ...

  5. u-boot Makefile完全解读

    编译u-boot的步骤: #make XX_config    XX表示某个cpu体系 #make  生成我们需要的u-boot.bin 具体可参考u-boot文件中的README. 1.设置版本 V ...

  6. 多文件目录下makefile文件递归执行编译所有c文件 很不错

    下面是网上找到的,思路很不错,当然也无法满足所有的需求,我执行又修改了一套.解决了下面的方法存在的问题:每次编译都是全编译的问题,解决思路是.o文件需要跟编译的makefile文件同目录. 首先说说本 ...

  7. Linux 内核顶层Makefile 详解

    目录 前602行分析 make xxx_defconfig 过程 Makefile.build 脚本分析 make 过程 built-in.o 文件编译生成过程 make zImage 过程 前几章我 ...

  8. makefile 文件 (​ http://blog.csdn.net/ruglcc/article/details/7814546/ )

    makefile三要素:目标,依赖,命令 make -f makefilename   指定makefile文件 (makefile写多行命令时,使用换行符"\") 一.makef ...

  9. Makefile知识点总结:

    #Makefile知识点总结: #一.make的参数: #make -B所有文件都编译 #make -h或者--help帮助文档 #make -t 显示出较新(修改过)的文件 #make -k 即 ...

最新文章

  1. 入华十年,一家互联网外企的“另类”视频广告模式
  2. 九 configparser模块
  3. C++的拷贝构造函数、operator=运算符重载,深拷贝和浅拷贝、explicit关键字
  4. html字体整体偏移,html/css:在悬停鼠标时增加字体大小的链接时的位置偏移
  5. vue --- 购物车页面
  6. 104 权限 sudo 解压缩
  7. 《循序渐进学Spark》一1.7 本章小结
  8. php把二维数组变为一维,如何将PHP二维数组转换为一维数组
  9. chinaunix-索引资料
  10. 亚马逊云计算业务上半年营收210亿美元
  11. Spark Mllib里数据集如何取前M行(图文详解)
  12. 手机自动化测试的原理
  13. 获取微信公众号文章封面图的方法
  14. html导航栏背景图片,页面导航栏滚动时改变导航栏背景样式及回到顶部
  15. 《实现领域驱动设计》 (美)弗农著 14章 应用程序
  16. 前端不错的相关网站和论坛
  17. 生成叠加高斯分布噪声的方波
  18. 企业权限管理系统---用户模块
  19. python红楼梦人物词频统计_用R进行文本分析初探——以《红楼梦》为例
  20. 十岁不愁、二十不悔、三十而立、四十不惑、五十知天命、六十耳顺、七十古来稀...

热门文章

  1. opencv-python透明图和纯白背景图互转
  2. 非可抢占式和抢占式进程调度的区别是什么?
  3. Elasticsearch的安装部署
  4. 阿里云开发者大会,For Every Developer
  5. 无坚不摧、唯快不破——论响应力、成就感和DEVOPS
  6. Android Q的适配 华为市场给都代码参考和文档
  7. 小心!做UI自动化一定要跨过这些坑
  8. 微博粉丝清理工具丨2023年最新粉丝批量清理_微博怎么批量清理粉丝
  9. android 评论功能盖楼,微信公众号再添新功能:可对留言“盖楼”评论、投诉及点赞...
  10. 学摄影:烟花摄影入门技巧