我正在 XCode 中编译一个项目,其中包含并链接到 MySQL++。出于某种原因,我不断收到以下编译器错误:
“断言”未在此范围内声明
源自 cpool.h,一个属于 MySQL++ 的头文件。有谁知道为什么会触发这个?
编辑:作为引用,MySQL++ 是通过 Macports 安装的。
最佳答案
最明显的答案是“assert.h”未被包含或未在您的包含路径中找到。另一种解释是断言宏在包含 header 后的某个时刻未定义。
编辑:既然你说包含了 assert.h,并且我们暂时假设它被发现了,因为它是一个标准的头文件,那么这就给我们留下了我上面提到的最后一种可能性,即宏已经被未定义。
由于 cpool.h 本身不会执行此操作,因此肯定是 assert.h 由您自己或由另一个第 3 方 header 间接包含,并且在这与您包含 cpool.h 之间发生了未定义。这可以通过将 cpool.h 包含移动到文件顶部来轻松测试。
关于c++ - "' assert' was not declared in this scope"in MySQL++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2909059/