"在MySQL ++中,'assert'未在此范围内声明"

Ano*_*ous 6 c++ macos xcode assert mysql++

我正在编译XCode中的一个项目,其中包含和链接了MySQL ++.出于某种原因,我不断收到以下编译器错误:

'assert'未在此范围内声明

源自cpool.h,一个头文件,是MySQL ++的一部分.有谁知道为什么会被触发?

编辑:作为参考,MySQL ++是通过Macports安装的.

Tro*_*our 7

最明显的答案是"assert.h"未包含在您的包含路径中或未在您的包含路径中找到.另一种解释是,在包含头部之后的某个时刻,断言宏未被定义.

编辑:因为你说assert.h是包含的,我们暂时假设它是被发现的,因为它是一个标准的标题,那么这就留给我们上面提到的最后一种可能性,即宏未定义.

由于cpool.h本身不会这样做,所以必须是这样的情况,即assert.h早先由你自己或间接由另一个第三方标题包含,并且在此与你包含的cpool.h之间发生了未定义.通过将cpool.h include移动到文件顶部可以轻松测试.


MBI*_*MBI 6

在 C++ 中,添加 cassert 标头应该可以解决您的问题。

#include <cassert>
Run Code Online (Sandbox Code Playgroud)