程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何通过标头中的宏定义控制 makefile 的行为?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何通过标头中的宏定义控制 makefile 的行为??

开发过程中遇到如何通过标头中的宏定义控制 makefile 的行为?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何通过标头中的宏定义控制 makefile 的行为?的解决方法建议,希望对你解决如何通过标头中的宏定义控制 makefile 的行为?有所启发或帮助;

在我的项目中,我在头文件 ACT_STATE 中定义了一个名为 config.h 的宏来编译不同的代码块。宏 ACT_STATE 可以是 ACT_DEVELOP(value 0) 或 ACT_DEPLOY(value 1),我希望名为 User 的文件夹中的源文件可以在状态 {{1} } 并将这些源文件留在状态 ACT_DEPLOY 中。我知道我可以在调用 ACT_DEVELOP 时将宏定义传递给 makefile,但是通过这种方式我需要定义 @H_247_3@make 两次。因此,我认为是否可以让 ACT_STATE 从头文件中读取宏定义,以便根据头文件中的宏定义编译不同的文件?

解决方法

Preprocessor options,

gcc -D name=definition

然而,ACT_DEVELOP 0ACT_DEPLOY 1 并不是生成二元变量的最简单方法。没有理由不能写 #define ACT_STATE 7#undef ACT_STATE,从而导致复杂的范围检查。更可取的方法是 #ifdef#if Defined(...)

gcc -D name

除非您有充分的理由这样做,否则请虑使用 C 标准 assert.h。使用 C11,您可以执行在某些情况下非常有用的 static_assertassert.h 触发器是 NDEBUG它在定义时使 assert 参数编译为 (void)0

另请参阅 passing additional variables to @H_247_3@make 以编辑 @H_247_3@makefile。

大佬总结

以上是大佬教程为你收集整理的如何通过标头中的宏定义控制 makefile 的行为?全部内容,希望文章能够帮你解决如何通过标头中的宏定义控制 makefile 的行为?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:makefile