gpt4 book ai didi

c++ - 如何检测包含 header 的位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:07 25 4
gpt4 key购买 nike

是否可以通过编程方式检测(并打印出)C++ header 的来源?

我有一个像这样的标题:

// DeprecatedHeader.h
__pragma( message ("DeprecatedHeader.h is deprecated - include NewHeader.h instead.") )
#include "NewHeader.h"

如您所见,编译器是 MSVC,但我有宏要包装。欢迎 GCC,但如果不可能,我会只在 Windows 上启用“技巧”。

但我正在寻找的是这样的输出

"AnyOtherFile.cpp was including DeprecatedHeader.h, please include NewHeader.h instead."

编辑:要清楚我为什么要这个:编译器抛出的警告已经帮了很多忙:代码没有损坏,但会促使人们更改包含。问题:它可能会责怪错误的“人”,因为您可以通过另一个标题拉入此标题。我的目标是归咎于错误的 header ,而不是编译单元。

最佳答案

您可以使用生成预处理源代码而不是完全编译的选项来运行编译器(gcc -ECL.EXE/E 或其他)。生成的代码将包括标记每个代码片段的来源。

关于c++ - 如何检测包含 header 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13509860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com