c++ - "' assert' was not declared in this scope"in MySQL++

标签 c++ xcode macos assert mysql++

我正在 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/

相关文章:

macos - 即使应用未运行(例如在iOS中),是否也可以将通知发送到Mountain Lion中的Notification Center?

ruby-on-rails - 如何在新的Mac OS X上正确安装Ruby on Rails,bundler等?

Python UnicodeDecodeError 在 Mac 上出现,但在 PC 上却没有?

c++ - 多线程在哪个 "level"处最有效?

c++ - 阈值绝对值

iphone - “无法读取符号”错误

xcode - 我什么时候应该检查 "Parallelize Build"以获得 Xcode 方案?

c++ - 非 POD 元素类型的可变长度数组 'set<int>'

c++ - '初始化' : truncation from 'int' to 'char'

ios - 将第三方框架导入 Xcode 6 – 如何将其保存到我的项目中?