【发布时间】:2014-10-15 16:04:34
【问题描述】:
我在 VS2013,C++ 控制台应用程序中。我在将 boost 集成到大型框架中时遇到问题。如果我尝试将它们集成到空白控制台应用程序中,它们可以正常工作。一旦我包含框架的“根” .h 文件(其中包括交易中的“许多”其他 .h 文件),它就会中断。这些 .h 文件“污染”了 boost 文件(以及之后包含的任何内容,结果参差不齐,不,我不能只首先包含 boost 文件,不幸的是,这并不总是一种选择)。我发现至少有一个根级#define 干扰并导致编译错误,但我找不到其他一些导致运行时问题的冲突。
具体来说,我的问题是:如何判断 .h 文件定义了哪些符号?希望以后会发生哪些冲突?我尝试使用谷歌搜索,但找不到执行此操作的工具。
或者是否有其他方法可以“隔离”它们(我的问题 .h 文件),但仍然让它们正确链接到它们在其他 .dll 中调用的函数?
【问题讨论】:
-
可能是一些静态代码分析工具(如 PVS-Studio)可以帮助您。但我不确定。
-
预编译头文件的生成是否会提供此信息?不确定在这种情况下 .pch 文件的格式是什么,但如果它基于文本,也许你可以在输出之间执行差异
-
@PetrPervukhin - 是的,这就是我的想法,但从未使用过任何类似的工具,我希望得到更具体的建议,和/或如何配置这样的工具来获得该输出.
标签: c++ boost visual-studio-2013 boost-preprocessor