大佬教程收集整理的这篇文章主要介绍了如何通过标头中的宏定义控制 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 0
和 ACT_DEPLOY 1
并不是生成二元变量的最简单方法。没有理由不能写 #define ACT_STATE 7
或 #undef ACT_STATE
,从而导致复杂的范围检查。更可取的方法是 #ifdef
或 #if Defined(...)
。
gcc -D name
除非您有充分的理由这样做,否则请考虑使用 C
标准 assert.h。使用 C11
,您可以执行在某些情况下非常有用的 static_assert
。 assert.h
触发器是 NDEBUG
,它在定义时使 assert
参数编译为 (void)0
。
另请参阅 passing additional variables to @H_247_3@make 以编辑 @H_247_3@makefile。
以上是大佬教程为你收集整理的如何通过标头中的宏定义控制 makefile 的行为?全部内容,希望文章能够帮你解决如何通过标头中的宏定义控制 makefile 的行为?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。