【发布时间】:2016-06-08 08:43:16
【问题描述】:
我在config.h 标头中有一堆#pragma message("A message")s,它们包含在项目的许多地方;目标是告知在构建期间选择了哪些配置选项。标头受#ifndef #define 样式标头保护。问题是每次包含此标头时,都会打印消息。有没有更好的方法来做到这一点,以便在构建过程中只打印一次消息?
编辑:我了解构建选项通常是使用 cmake、qmake、autotools 等构建工具来操作和查看的,但由于项目的性质。
【问题讨论】:
-
AFAIK 这是不可能的
#pragma message -
您需要能够在不同编译单元之间传递已打印消息的信息。这似乎异常困难。我宁愿写一个脚本来过滤掉输出中的重复行。
-
@GillBates 还有什么解决方案可以在构建期间打印配置选项?
-
那么是构建工具是什么?例如,这对于 GNU make 来说并不是很困难,或者即使构建系统只是一个 shell 脚本。也许优化你的标签?
-
@MikeKinghan 构建工具是 Microchip 专有的,并且已经非常损坏且不稳定。我不敢孤立或编写集成了他们工具的脚本供我自己使用。我同意,也许对这个特定问题的任何(部分)答案在一般情况下都没有用,甚至这种情况也无济于事,因为打印这种类型的消息不是编译器的工作。
标签: c gcc c-preprocessor pragma