gpt4 book ai didi

c++ - 搜索应该被 ifdef 排除的未解析引用

转载 作者:行者123 更新时间:2023-11-30 04:12:51 26 4
gpt4 key购买 nike

我希望这是一个有趣的问题。我正在尝试查找未解析的外部符号的来源。如果打开调试,我有使用全局文件指针的调试代码。所有这些调试代码都应该受到#ifdef 的保护,例如:

#ifdef DO_XLL_DEBUG
fprintf(debugPointer, "hello\n);
...
#endif

当我定义 DO_XLL_DEBUG 时,一切都很好。如果我取消定义 DO_XLL_DEBUG,一切都会编译(我会重新构建以防万一),但它在链接步骤失败,找不到 debugPointer。

所以,问题是,有没有一种简单的方法可以找到我在调试代码中 #ifdef 失败的地方?我可以想到几个不太简单的方法。

我正在使用 Visual Studio 2005。这是一个 C++ 项目。

谢谢!

[编辑]

感谢所有建议。原来问题出在其他人的代码中,它不是我在 Linux 中从事的相应项目的一部分(我的大部分工作都是在 Linux 中进行的),所以难怪我没有立即找到它。

最佳答案

只需定义一些不兼容的debugPointer 并让编译器将您指向所有意外使用或重新定义它的地方。可能是这样的:

#ifndef DO_XLL_DEBUG
#define debugPointer static_assert(false,"damn it!");
#endif

(假设您没有其他变量、参数等称为debugPointer)

关于c++ - 搜索应该被 ifdef 排除的未解析引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668861/

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