makefile变量定义应用到c语言
2024-08-28 18:17:38
makefile是为组织程序工程的,其定义的宏怎样应用到c程序中呢?
我们知道Makefile中可定义变量或导出变量,make命令可定义变量;编译器(如gcc)可通过CFLAGS定义宏。
但如何才能使Makefile或make命令用变量控制C程序呢?
C程序可以接收编译器定义的宏,通过-D指定。makefile中将make命令或makefile中变量通过编译器-D参数传递到C程序是关键。
宏定义使用前缀-D,在编译过程中可以把宏定义追加到CFLAG中。宏定义有两种相似的写法
【第一种】-D DEFINES
【第二种】-D DEFINES=CONDITION
注:可以在C语言中直接使用宏定义,如同C文件开始#define定义一样,但要注意变量定义格式(字符串要用引号)。
如判断SOC是TI则C程序执行特殊动作(SOC_TI),流程如下:
1. make命令执行时,定义SOC=TI。
make SOC=TI
2. makefile中判断SOC变量。
ifeq ( "$SOC", "TI")
SOC_FLAG = -DSOC_TI
endif
3. CFLAGS增加宏
CFLAGS += $(SOC_FLAG)
foo:foo.o bar.o
cc -o foo foo.o bar.o $(CFLAGS) $(LDFLAGS)
4. 在C程序中增加宏判断
#ifdef SOC_TI
todo...
#endif
通过上述过程SOC=TI变量定义就传导到C程序中。
参考:
1. Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
最新文章
- [lua]安卓ndk如何编译lua库
- nodejs将PDF文件转换成txt文本,并利用python处理转换后的文本文件
- SmartImageView&;常见的开源代码
- 【转】深入浅出 JavaScript 中的 this
- 161018--NOIP模拟
- python 自动化之路 day 04
- C语言运算符的优先级
- centos 7 部署 open-falcon 0.2.0
- About Swift
- ActiveReport系列报表开发随笔收集
- 《剑指offer》-数字在排序数组中出现的次数
- vue2.0学习笔记之路由(二)路由嵌套+动画
- Java文件管理系统
- [译]Intel App Framework 3.0的变化
- Qt addStretch()详解
- [HNOI2004]宠物收养场
- Windows上的巧克力味Chocolatey详解
- 循环遍历正则验证input框内容合法性
- 【51Nod1258】序列求和V4(FFT)
- C#使用NOPI生成excel要点记载
热门文章
- 【MySQL笔记】Excel数据导入Mysql数据库的实现方法——Navicat
- perspective 的笔记
- Matlab与C++混合编程 编写独立外部应用程序时出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误
- android_我的第一个Android程序
- Android 中 Environment.getExternalStorageDirectory()无效
- webpack配置:css文件打包、JS压缩打包和HTML文件发布
- 【HTTPS双向加密认证】
- 基于Spark机器学习和实时流计算的智能推荐系统
- Android实现批量照片上传至server,拍照或者从相冊选择
- Android TextView 常见问题与使用总结