一个Linux下的C语言项目,希望通过Macro实现每个功能模块都能自由打开/关闭,例如:
#define FEATURE_A 1 // 如果想关闭Feature_A,请定义为0
#define FEATURE_B 1 // 如果想关闭Feature_B,请定义为0
#define FEATURE_C 1 // 如果想关闭Feature_C,请定义为0
默认情况下,Feature A/B/C都是打开的,也就是都定义为1。但是我希望保证任意组合(2^3=8种组合)下,代码都能编译通过,并且这个工作可以通过自动化脚本来实现,而不是手工的一次次修改宏定义的值。
我能想到的一个思路是:Linux下命令行编译时,我可以添加编译选项"-DFEATURE_A=1 -DFEATURE_B=1 -DFEATURE_C=1",那么是否可以在编译脚本里实现类似如下伪码:
define $i, $j, $k;
for ($i=0; $i<1; $i++)
for ($j=0; $j<1; $j++)
for ($k=0; $k<1; $k++)
make -DFEATURE_A=$i -DFEATURE_B=$j -DFEATURE_C=$k
因为自己对脚本和gcc编译选项不熟悉,不知道是否有成熟的便捷实现方法,或者我自己的上述思路是否可行。特此求教,谢谢!
Linux下C语言项目,怎么基于不同宏值定义组合,自动化编译
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 泥巴鱼 2015-07-12 14:14关注
谢谢这么快的回复!
请问以Bash为例,怎么做到“每次根据不同的变量,直接传到make命令参数中”?真的就像我提问里面给的伪码那样就行?本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 stable diffusion
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算