2015-01-10 63 views
13

构建我的应用程序时出现此错误。任何人都可以帮我解决这个问题吗?Apple Mach-O链接器错误sqlite3

我使用的是swift和parse.com。非常感谢你的帮助!

因为我无法发布图片,下面我发布整个错误消息。

Undefined symbols for architecture i386: 
    "_sqlite3_bind_blob", referenced from: 
     -[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o) 
    "_sqlite3_bind_double", referenced from: 
     -[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o) 
    "_sqlite3_bind_int64", referenced from: 
     -[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o) 
    "_sqlite3_bind_null", referenced from: 
     -[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o) 
    "_sqlite3_bind_parameter_count", referenced from: 
     ___59-[PFSQLiteDatabase executeQueryAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o) 
     ___57-[PFSQLiteDatabase executeSQLAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o) 
    "_sqlite3_bind_text", referenced from: 
     -[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o) 
    "_sqlite3_close", referenced from: 
     ___30-[PFSQLiteDatabase closeAsync]_block_invoke in Parse(PFSQLiteDatabase.o) 
    "_sqlite3_column_blob", referenced from: 
     -[PFSQLiteDatabaseResult dataForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o) 
    "_sqlite3_column_bytes", referenced from: 
     -[PFSQLiteDatabaseResult dataForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o) 
    "_sqlite3_column_count", referenced from: 
     -[PFSQLiteDatabaseResult columnNameToIndexMap] in Parse(PFSQLiteDatabaseResult.o) 
    "_sqlite3_column_double", referenced from: 
     -[PFSQLiteDatabaseResult doubleForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o) 
    "_sqlite3_column_int", referenced from: 
     -[PFSQLiteDatabaseResult intForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o) 
    "_sqlite3_column_int64", referenced from: 
     -[PFSQLiteDatabaseResult longForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o) 
    "_sqlite3_column_name", referenced from: 
     -[PFSQLiteDatabaseResult columnNameToIndexMap] in Parse(PFSQLiteDatabaseResult.o) 
    "_sqlite3_column_text", referenced from: 
     -[PFSQLiteDatabaseResult stringForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o) 
    "_sqlite3_column_type", referenced from: 
     -[PFSQLiteDatabaseResult objectForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o) 
     -[PFSQLiteDatabaseResult columnIndexIsNull:] in Parse(PFSQLiteDatabaseResult.o) 
    "_sqlite3_errmsg", referenced from: 
     -[PFSQLiteDatabase _errorWithErrorCode:] in Parse(PFSQLiteDatabase.o) 
    "_sqlite3_finalize", referenced from: 
     ___59-[PFSQLiteDatabase executeQueryAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o) 
     ___57-[PFSQLiteDatabase executeSQLAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o) 
     -[PFSQLiteStatement close] in Parse(PFSQLiteStatement.o) 
    "_sqlite3_open", referenced from: 
     ___29-[PFSQLiteDatabase openAsync]_block_invoke in Parse(PFSQLiteDatabase.o) 
    "_sqlite3_prepare_v2", referenced from: 
     ___59-[PFSQLiteDatabase executeQueryAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o) 
     ___57-[PFSQLiteDatabase executeSQLAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o) 
    "_sqlite3_reset", referenced from: 
     -[PFSQLiteStatement reset] in Parse(PFSQLiteStatement.o) 
    "_sqlite3_step", referenced from: 
     ___57-[PFSQLiteDatabase executeSQLAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o) 
     -[PFSQLiteDatabaseResult next] in Parse(PFSQLiteDatabaseResult.o) 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
+0

明显的出发点是:您是否尝试链接到sqlite3库?如果是这样,怎么样? –

+0

在PFSQLiteDatabaseResult.o – moonvader

回答

27

试错后,得到的答复是再次检查所有的框架。 它似乎parse.com在这几个月刚刚做了更新。

目前它需要libsqlite3.dylib作为它的库。

如果发现类似问题,首先检查最近更新的要求,在这里: https://www.parse.com/apps/quickstart#parse_data/mobile/ios/native/existing

+5

中也有同样的错误,以防万一Gibran的答案不清楚,修复方法是转到Build Phase - > Link Binary with Library部分,并将libsqlite3.dylib添加到链接库列表 –

+0

请注意,现在我们有“.tbd”库。 http://stackoverflow.com/questions/31450690/why-xcode-7-shows-tbd-instead-of-dylib –

4

我以前有这个问题。只需从框架导入libsqlite.dyliblibz.dylib,您的错误就会消失。

9

我刚刚发生了这种情况,@纪伯伦的回答让我走上了正轨。我发现使用Xcode 7和iOS 9的一个区别是libsqlite3.dylib已被替换为libsqlite3.tbd