【问题标题】:Upgraded to Xcode 4.1 and sqlite3.h is causing compilation errors where it didn't before the upgrade升级到 Xcode 4.1 和 sqlite3.h 会导致编译错误,而在升级之前没有
【发布时间】:2011-07-26 21:14:38
【问题描述】:

我最近打开了一个在我安装 Xcode 4.1 之前的现有项目。 起初有很多错误,我通过选择 LLVM 2.1 作为编译器的选项来纠正问题。 除了一个错误之外的所有错误都已清除,在 sqlite3.h 中,这一行导致了一个问题:

SQLITE_API int sqlite3_enable_shared_cache(int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_7, __IPHONE_2_0, __IPHONE_5_0);

错误信息如下:

函数声明符后的预期函数体。

非常感谢任何帮助,

谢谢!

【问题讨论】:

  • __OSX_AVAILABLE_BUT_DEPRECATED() 宏如何解析?我假设它是一个 sqlite3 定义的宏。我对__IPHONE_5_0 的定义有点惊讶。

标签: objective-c ios xcode cocoa-touch


【解决方案1】:

我遇到了同样的问题。我改变了我的代码,上面写着

#include "/usr/include/sqlite3.h"

#include <sqlite3.h>

然后解决了它。也许您以某种方式选择了错误的头文件。

【讨论】:

  • 非常有帮助,你是。这背后有什么原因吗?
  • 您也可以更改头文件中的行以注释掉OSX警告部分,它将起作用:SQLITE_API int sqlite3_enable_shared_cache(int);// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_7, __IPHONE_2_0, __IPHONE_5_0);
  • 谢谢它真的有帮助:)
【解决方案2】:

我有同样的问题。在最新的 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>

【讨论】:

  • 我使用 Delta Walker 比较了 .h 文件
【解决方案3】:

同样的问题。我确实在某处读到升级到 Xcode 4.2 可能会修复此错误。但是,Xcode 4.2 目前还不是 App Store 批准的部署工具,所以这不是一个选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2022-01-08
    • 2011-10-29
    • 2013-12-19
    相关资源
    最近更新 更多