我希望这是一个有趣的问题。我正在尝试查找未解析的外部符号的来源。如果打开调试,我有使用全局文件指针的调试代码。所有这些调试代码都应该受到#ifdef 的保护,例如:
#ifdef DO_XLL_DEBUG
fprintf(debugPointer, "hello\n);
...
#endif
当我定义 DO_XLL_DEBUG 时,一切都很好。如果我取消定义 DO_XLL_DEBUG,一切都会编译(我会进行重建以防万一),但它在链接步骤失败,没有找到 debugPointer。
所以,问题是,有没有一种简单的方法可以找到我在调试代码周围没有#ifdef 的地方?我能想到几种不太容易的方法。
我正在使用 Visual Studio 2005。这是一个 C++ 项目。
谢谢!
[编辑]
感谢所有的建议。原来问题出在别人的代码中,这不是我在 Linux 中工作的相应项目的一部分(我在 Linux 上做大部分工作),所以难怪我没有马上找到它。