【问题标题】:Warnings with a new Xcode project using FMDB, SqliteCipher and CocoaPods使用 FMDB、SqliteCipher 和 CocoaPods 的新 Xcode 项目的警告
【发布时间】:2014-07-25 07:26:20
【问题描述】:
我已经安装了 CocoaPods.. 并按照说明加载了工作区。
我收到了这些我不明白的警告,这是一个例子:
Pods-CipherDatabaseSync-SQLCipher
sqlite.c
/Users/admin/Code/CipherDatabaseSync/Pods/SQLCipher/sqlite3.c:24035:13:宏“MAX”的模糊扩展
我已经环顾了几个小时,对我需要做的事情感到困惑,有人可以为我指出某个可以提供一些见解的方向吗?
谢谢。
【问题讨论】:
标签:
xcode
cocoapods
fmdb
sqlcipher
【解决方案1】:
在 sqlite.c 文件中,看起来好像 MIN 和 MAX 试图在文件的两个不同区域中定义。第一次上线214
/* Macros for min/max. */
#ifndef MIN
#define MIN(a,b) (((a)<(b))?(a):(b))
#endif /* MIN */
#ifndef MAX
#define MAX(a,b) (((a)>(b))?(a):(b))
#endif /* MAX */
然后第二行8519
/*
** Macros to compute minimum and maximum of two numbers.
*/
#define MIN(A,B) ((A)<(B)?(A):(B))
#define MAX(A,B) ((A)>(B)?(A):(B))
我注释掉了他们第二次定义它的位置,并且在再次清理和构建项目后所有警告都消失了。
【解决方案2】:
从 sqlite3.c 文件中删除 MAX 和 MIN 宏定义,因为它们已经在系统头文件中定义。
【解决方案3】:
问题解决方案:
打开 Xcode 项目构建设置
将“-Wno-ambiguous-macro” 添加到“Other C flags”