Xcode 呼叫C++;main.mm中的库导致编译错误-验证声明与宏冲突

Xcode 呼叫C++;main.mm中的库导致编译错误-验证声明与宏冲突,xcode,compiler-errors,objective-c++,berkeley-db,Xcode,Compiler Errors,Objective C++,Berkeley Db,main.mm中包含的标题中有以下代码: 1. virtual int truncate(DbTxn *, u_int32_t *, u_int32_t); 2. virtual int upgrade(const char *name, u_int32_t flags); 3. virtual int verify( 4. const char *, const char *, __DB_STD(ostream) *, u_int32_t); 前两行用于上下文和显示正在工作的

main.mm中包含的标题中有以下代码:

1.  virtual int truncate(DbTxn *, u_int32_t *, u_int32_t);
2.  virtual int upgrade(const char *name, u_int32_t flags);
3.  virtual int verify(
4.      const char *, const char *, __DB_STD(ostream) *, u_int32_t);
前两行用于上下文和显示正在工作的内容。第三行和第四行有以下错误:

宏“verify”传递了4个参数,但只接受1个

“验证”声明为“虚拟”字段

如果我在verify声明的末尾添加了一个随机字符,比如
verifyx
,那么文件编译就不会出现问题。
verify
是否保留

编辑: 我的main.mm文件:

#import <Foundation/Foundation.h>

#import "db_cxx.h"

int main (int argc, const char * argv[])
{

    return 0;
}
这意味着在某个地方有一个
#define verify(x).
。它不是在C++中保留的,但你所包括的是定义它。

快速

fgrep -r verify /usr/include | fgrep '#define'
收益率,在很多其他事情中

/usr/include/AssertMacros.h:        #define verify(assertion) __Verify(assertion)

在包含了所需的所有OS X/iOS头之后,在包含bdb之前,应该可以安全地进行
#undef验证。

可能在berkeley db头中?我也检查过了。在标题中发布了它的所有两个实例:-(抱歉,我不理解问题的细微差别。您的编辑帮助了我。请查看更新的答案。我自己刚找到AssertMacros.h,但不知道如何解决问题。谢谢!
fgrep -r verify /usr/include | fgrep '#define'
/usr/include/AssertMacros.h:        #define verify(assertion) __Verify(assertion)