网站首页 > 教程文章 正文
Makefile文件除了可以识别环境变量外,还可以识别执行make命令时传入的参数,即make可以向Makefile传参数。向Makefile传参数时是比较智能的,make程序会自动识别参数名称和参数值。
例如:make name=mycc
就把mycc这个值通过变量name传入到了Makefile文件中,在Makefile中可以得到$(name)变量,获取其值mycc。
如下面示例:
[cpp@wen*mdb_new:~]$ cat Makefile
flag=-gdb3
ifeq ($(AA),hello)
flag+=" -O3"
else
flag+=" -O3 -Wall"
endif
all:fun
fun:
@echo "$(AA)"
@echo "$(BB)"
@echo "$(flag)"
@test "$(AA)" = "hello" && echo "the 1th parameter is hello" || echo "the 1th parameter is not hello"
@test "$(BB)" = "world" && echo "the 2th parameter is world" || echo "the 2th parameter is not world"
在执行make AA=hello BB=world命令后,就把hello通过变量$(AA)传入Makefile文件,把world通过变量$(BB)传入Makefile。其执行效果为:
应用命令行传参方法,结合ifeq()、ifneq()比较函数、ifdef、 ifndef变量检测,可以建立适用于不同平台或不同编译条件的Makefile文件。
铁锈笔记2022-01-02
- 上一篇: C语言之编译器集合(c语言编译器介绍)
- 下一篇: Makefile实践(makefile经典教程)
猜你喜欢
- 2025-07-06 一个可以用来练手的C++开源编译器!
- 2025-07-06 Linux开发工具使用指南(linux软件开发工具)
- 2025-07-06 Linux下Makefile文件的模式规则和自动化变量
- 2025-07-06 程序员的副业秘籍!一款可以快速搭建各类系统的后台管理系统
- 2025-07-06 postgresql自定义函数实现,通过contrib模块进行扩展
- 2025-07-06 Linux GCC编译及Makefile使用(gcc makefile编写)
- 2025-07-06 wordpress独立站上线两周没收录?原来是robots.txt搞的鬼…
- 2025-07-06 make sure用法解析(make sure sth)
- 2025-07-06 每天一个 Python 库:Django全能Web框架,一站式后台开发
- 2025-07-06 Makefile实践(makefile经典教程)
- 最近发表
-
- 一个可以用来练手的C++开源编译器!
- Linux开发工具使用指南(linux软件开发工具)
- Linux下Makefile文件的模式规则和自动化变量
- 程序员的副业秘籍!一款可以快速搭建各类系统的后台管理系统
- postgresql自定义函数实现,通过contrib模块进行扩展
- Linux GCC编译及Makefile使用(gcc makefile编写)
- wordpress独立站上线两周没收录?原来是robots.txt搞的鬼…
- make sure用法解析(make sure sth)
- 每天一个 Python 库:Django全能Web框架,一站式后台开发
- Makefile实践(makefile经典教程)
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)