前言
这是 N 年前遇到的一个问题了。最近跟 DEBUG 宏对着干上了,正好翻到这篇总结 —— 记录了使用 pragma message 排查 同一个工程不同 CPP 中 DEBUG 宏的值不同的过程。现对之前的总结做了更新整理,分享给各位小伙伴儿。
pragma message
使用 #pragma message 可以在编译的过程输出我们指定的信息,是排查编译问题的好帮手。以下例子摘自微软官方文档,感兴趣小伙伴儿可以直接添加到自己的工程中使用。
// pragma_directives_message1.cpp// compile with: /LD#if _M_IX86 >= 500#pragma message("_M_IX86 >= 500")#endif
#pragma message( "Compiling " __FILE__ )#pragma message( "Last modified on " __TIMESTAMP__ )
// with line number#define STRING2(x) #x#define STRING(x) STRING2(x)
#pragma message (__FILE__ "[" STRING(__LINE__) "]: test")
下图是微软官方介绍 #pragma message 的文档截图,方便各位小伙伴儿阅读。
现象
在 test1.cpp 里
使用pragma message解决DEBUG宏谜团

本文记录了一次使用pragma message排查同一工程中DEBUG宏在不同编译配置下值不同问题的过程。通过现象、查看工程配置和继续调查,最终发现是由于包含的库头文件导致的。实战部分提供了示例工程供读者实践。总结建议尽量使用#pragma message而非条件编译宏来调试。
最低0.47元/天 解锁文章
4207

被折叠的 条评论
为什么被折叠?



