Обновление до Xcode 4.1 и sqlite3.h вызывает ошибки компиляции там, где это не было до обновления - PullRequest
10 голосов
/ 27 июля 2011

Я недавно открыл существующий проект еще до того, как установил 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);

Сообщение об ошибке гласит:

Ожидаемое тело функции после объявления функции.

Любая помощь с благодарностью,

Спасибо!

Ответы [ 3 ]

29 голосов
/ 30 июля 2011

У меня была такая же проблема. Я изменил свой код, который сказал

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

до

#include <sqlite3.h>

и это исправило. Возможно, вы как-то забираете неправильный заголовочный файл.

1 голос
/ 02 августа 2011

У меня была такая же проблема.Открыл старый проект в последнем Xcode.sqllite3.h, вызывающий ошибки.

Я заметил, что если вы щелкнете по sqlite3.h в своем коде, вызвавшем ошибку, и откроете его в xcode, щелкните правой кнопкой мыши и покажите в поиске:

/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 / включено

#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>
0 голосов
/ 29 июля 2011

Та же проблема здесь.Я где-то читал, что обновление до Xcode 4.2 может исправить эту ошибку.Однако Xcode 4.2 в настоящее время не является утвержденным инструментом развертывания для App Store, поэтому это не вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...