我有同样的问题。在最新的 Xcode 中打开了一个旧项目。
sqllite3.h 导致错误。
我注意到,如果您单击代码中导致错误的 sqlite3.h 并在 xcode 中打开它,右键单击并在 finder 中显示您会得到
/usr/include/sqlite3.h
当你去 dylib 时
Project > Targets > Project Name > Build Phases tab > Link Binary with Library section > libsqlite3.lib > right click and Show in Finder
你得到
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/libsqlite3.lib
并且此标题位于并行文件夹中
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/include/sqllite3.h
更重要的是 .h 文件是不同的版本
iPhone SDk 目录中的那个是
#define SQLITE_VERSION "3.7.2"
Mac/usr/include 中的那个
#define SQLITE_VERSION "3.7.5"
在 /usr/include SQLITE_VERSION "3.7.5" 中定义了抛出错误的宏
__OSX_AVAILABLE_BUT_DEPRECATED
SQLITE_API int sqlite3_enable_shared_cache(int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_7, __IPHONE_2_0, __IPHONE_5_0);
但在 iPhone SDK 4.3 / sqlite "3.7.2" 中的那个
SQLITE_API int sqlite3_enable_shared_cache(int);
对于相同的定义它不是。
上面提到的修复工作
CHANGE EVERY #include "/usr/include/sqlite3.h"
到
#include <sqlite3.h>