0

我正在使用 eclipse 并在我的 c/c++ 代码中不断收到对 `__assert_func' 错误的未定义引用。

我想知道是否有办法告诉正在定义什么(#define * *)。我可以手动浏览我的文件,但我正在处理很多文件,这需要一段时间。是否有编译器选项或工具可以为我列出这些?

谢谢,

山姆

4

3 回答 3

3

这取决于编译器。如果您正在运行 GCC,您可以阅读此内容。

GCC 转储预处理器定义

于 2013-01-20T00:12:17.117 回答
1

#define未定义的引用与s无关。这是一个链接器错误,您可能忘记链接到 .lib/.a 文件。

于 2013-01-20T00:16:32.773 回答
1

您通常可以从编译器生成预处理器输出 - 例如g++ -E myprog.cpp > myprog.i. 我认为CL -E在 Visual Studio 中做同样的事情,其他编译器往往有类似的选项。

听起来您缺少的功能确实是 a ASSERTorassert宏的一部分。

于 2013-01-20T00:17:03.137 回答