【发布时间】:2009-10-06 11:18:00
【问题描述】:
我有一个几乎在整个源代码中都使用的 .h 文件(在我的例子中,它只是一个包含 .cc 和 .h 文件的目录)。基本上,我保留了两个版本的 .h 文件:一个带有一些用于代码分析的调试信息,另一个是常规版本。调试版本只有一个额外的宏和外部函数声明。我经常在两个版本之间切换。但是,这会导致 20 分钟的重新编译。
您建议如何避免这个重新编译问题?也许设置一些标志,创建不同的树?有哪些常见的解决方案以及如何嵌入它们?
新的 .h 文件包含:
extern void (foo)(/*some params*/);
/***extra stuff****/
#define foo(...) ( /*call_some_function*/) , foo())
/*some_functions*_for_debugging/
正如您所见,这将导致重新编译。我在 Linux AS 3 上使用 gcc 构建
谢谢
【问题讨论】:
-
我不明白你的代码示例。有一些不匹配的括号。请澄清一下。
-
我没有看到任何不匹配的括号。基本上,我在用户调用函数 foo 之前添加了一些调试信息,这就是函数名称和宏名称相同的原因。
-
#define foo(...) ( /*call_some_function*/) , foo())
-
另外,你为什么不改变函数
foo本身在它启动时进行调试? -
因为我在调用 foo 之前从调用 foo 的函数收集信息。
标签: c++ c debugging gcc header-files