2015-04-25 59 views
2

我在我的Swift項目中添加了FMDB,並遵循FMDB Swift指令(即複製相關的.h/m文件並創建橋接頭包含導入語句)。當我嘗試編譯我得到錯誤的整車,所有這些蘋果匹配-O-鏈接錯誤......OSDB Swift項目中的FMDB - >很多錯誤

Undefined symbols for architecture x86_64: 
    "_sqlite3_bind_blob", referenced from: 
     -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o 
    "_sqlite3_bind_double", referenced from: 
     -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o 
    "_sqlite3_bind_int", referenced from: 
     -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o 
    "_sqlite3_bind_int64", referenced from: 
     -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o 
    "_sqlite3_bind_null", referenced from: 
     -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o 
    "_sqlite3_bind_parameter_count", referenced from: 
     -[FMDatabase executeQuery:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
     -[FMDatabase executeUpdate:error:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
    "_sqlite3_bind_parameter_index", referenced from: 
     -[FMDatabase executeQuery:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
     -[FMDatabase executeUpdate:error:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
    "_sqlite3_bind_text", referenced from: 
     -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o 
    "_sqlite3_busy_handler", referenced from: 
     -[FMDatabase setMaxBusyRetryTimeInterval:] in FMDatabase.o 
    "_sqlite3_changes", referenced from: 
     -[FMDatabase changes] in FMDatabase.o 
    "_sqlite3_close", referenced from: 
     -[FMDatabase close] in FMDatabase.o 
    "_sqlite3_column_blob", referenced from: 
     -[FMResultSet dataForColumnIndex:] in FMResultSet.o 
     -[FMResultSet dataNoCopyForColumnIndex:] in FMResultSet.o 
    "_sqlite3_column_bytes", referenced from: 
     -[FMResultSet dataForColumnIndex:] in FMResultSet.o 
     -[FMResultSet dataNoCopyForColumnIndex:] in FMResultSet.o 
    "_sqlite3_column_count", referenced from: 
     -[FMResultSet columnCount] in FMResultSet.o 
     -[FMResultSet columnNameToIndexMap] in FMResultSet.o 
     -[FMResultSet kvcMagic:] in FMResultSet.o 
     -[FMResultSet resultDictionary] in FMResultSet.o 
    "_sqlite3_column_double", referenced from: 
     -[FMResultSet doubleForColumnIndex:] in FMResultSet.o 
    "_sqlite3_column_int", referenced from: 
     -[FMResultSet intForColumnIndex:] in FMResultSet.o 
    "_sqlite3_column_int64", referenced from: 
     -[FMResultSet longForColumnIndex:] in FMResultSet.o 
     -[FMResultSet longLongIntForColumnIndex:] in FMResultSet.o 
    "_sqlite3_column_name", referenced from: 
     -[FMResultSet columnNameToIndexMap] in FMResultSet.o 
     -[FMResultSet kvcMagic:] in FMResultSet.o 
     -[FMResultSet resultDictionary] in FMResultSet.o 
     -[FMResultSet columnNameForIndex:] in FMResultSet.o 
    "_sqlite3_column_text", referenced from: 
     -[FMResultSet kvcMagic:] in FMResultSet.o 
     -[FMResultSet stringForColumnIndex:] in FMResultSet.o 
     -[FMResultSet UTF8StringForColumnIndex:] in FMResultSet.o 
    "_sqlite3_column_type", referenced from: 
     -[FMResultSet stringForColumnIndex:] in FMResultSet.o 
     -[FMResultSet dateForColumnIndex:] in FMResultSet.o 
     -[FMResultSet dataForColumnIndex:] in FMResultSet.o 
     -[FMResultSet dataNoCopyForColumnIndex:] in FMResultSet.o 
     -[FMResultSet columnIndexIsNull:] in FMResultSet.o 
     -[FMResultSet UTF8StringForColumnIndex:] in FMResultSet.o 
     -[FMResultSet objectForColumnIndex:] in FMResultSet.o 
     ... 
    "_sqlite3_create_function", referenced from: 
     -[FMDatabase makeFunctionNamed:maximumArguments:withBlock:] in FMDatabase.o 
    "_sqlite3_data_count", referenced from: 
     -[FMResultSet resultDict] in FMResultSet.o 
     -[FMResultSet resultDictionary] in FMResultSet.o 
    "_sqlite3_errcode", referenced from: 
     -[FMDatabase lastErrorCode] in FMDatabase.o 
     -[FMDatabase errorWithMessage:] in FMDatabase.o 
     -[FMResultSet hasAnotherRow] in FMResultSet.o 
    "_sqlite3_errmsg", referenced from: 
     -[FMDatabase lastErrorMessage] in FMDatabase.o 
     -[FMDatabase executeUpdate:error:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
     -[FMResultSet nextWithError:] in FMResultSet.o 
    "_sqlite3_exec", referenced from: 
     -[FMDatabase executeStatements:withResultBlock:] in FMDatabase.o 
    "_sqlite3_finalize", referenced from: 
     -[FMDatabase close] in FMDatabase.o 
     -[FMDatabase executeQuery:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
     -[FMDatabase executeUpdate:error:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
     -[FMStatement close] in FMDatabase.o 
     -[FMDatabase(FMDatabaseAdditions) validateSQL:error:] in FMDatabaseAdditions.o 
    "_sqlite3_free", referenced from: 
     -[FMDatabase executeStatements:withResultBlock:] in FMDatabase.o 
    "_sqlite3_last_insert_rowid", referenced from: 
     -[FMDatabase lastInsertRowId] in FMDatabase.o 
    "_sqlite3_libversion", referenced from: 
     +[FMDatabase sqliteLibVersion] in FMDatabase.o 
    "_sqlite3_next_stmt", referenced from: 
     -[FMDatabase close] in FMDatabase.o 
    "_sqlite3_open", referenced from: 
     -[FMDatabase open] in FMDatabase.o 
    "_sqlite3_open_v2", referenced from: 
     -[FMDatabase openWithFlags:] in FMDatabase.o 
    "_sqlite3_prepare_v2", referenced from: 
     -[FMDatabase executeQuery:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
     -[FMDatabase executeUpdate:error:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
     -[FMDatabase(FMDatabaseAdditions) validateSQL:error:] in FMDatabaseAdditions.o 
    "_sqlite3_reset", referenced from: 
     -[FMDatabase executeUpdate:error:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
     -[FMStatement reset] in FMDatabase.o 
    "_sqlite3_sleep", referenced from: 
     _FMDBDatabaseBusyHandler in FMDatabase.o 
    "_sqlite3_step", referenced from: 
     -[FMDatabase executeUpdate:error:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o 
     -[FMResultSet nextWithError:] in FMResultSet.o 
    "_sqlite3_threadsafe", referenced from: 
     -[FMDatabase initWithPath:] in FMDatabase.o 
     +[FMDatabase isSQLiteThreadSafe] in FMDatabase.o 
    "_sqlite3_user_data", referenced from: 
     _FMDBBlockSQLiteCallBackFunction in FMDatabase.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

的FMDB文件我已經添加有:

FMDatabase.h 
FMDatabase.m 
FMDatabaseAdditions.h 
FMDatabaseAdditions.m 
FMDatabasePool.h 
FMDatabasePool.m 
FMDatabaseQueue.h 
FMDatabaseQueue.m 
FMDB.h 
FMResultSet.h 
FMResultSet.m 

有人能告訴我我做錯了什麼?

回答

4

沒有任何人!我解決了它。我必須通過項目設置中的Build Phases頁面將libsqlite3.dylib鏈接到我的項目中。到目前爲止,我的項目中沒有框架組合,所以它有點混亂。

+0

如果您像我一樣刪除了它,然後轉到垃圾箱並使用回退進行恢復。您可能需要關閉Xcode並重新打開它。 – tazboy

0

您的項目 - >常規 - >鏈接框架和庫,你可以添加這個libsqlite3.0.tbd。 現在你可以建立你的項目和框架。

0

如果你有這樣的錯誤信息來源是這樣的:

Apple Mach-O Linker (ld) Error Group 
    "_sqlite3_column_type", referenced from: 
    "_sqlite3_column_double", referenced from: 
    "_sqlite3_column_int", referenced from: 
    "_sqlite3_column_blob", referenced from: 
    "_sqlite3_data_count", referenced from: 
    "_sqlite3_column_count", referenced from: 
    "_sqlite3_create_function", referenced from: 
    "_sqlite3_user_data", referenced from: 
    "_sqlite3_exec", referenced from: 
    "_sqlite3_step", referenced from: 
    "_sqlite3_prepare_v2", referenced from: 
    "_sqlite3_threadsafe", referenced from: 
    "_sqlite3_bind_null", referenced from: 
    "_sqlite3_column_name", referenced from: 
    "_sqlite3_errcode", referenced from: 
    "_sqlite3_bind_int", referenced from: 
    "_sqlite3_free", referenced from: 
    "_sqlite3_bind_int64", referenced from: 
    "_sqlite3_open", referenced from: 
    "_sqlite3_last_insert_rowid", referenced from: 
    "_sqlite3_column_bytes", referenced from: 
    "_sqlite3_bind_parameter_index", referenced from: 
    "_sqlite3_bind_blob", referenced from: 
    "_sqlite3_column_text", referenced from: 
    "_sqlite3_finalize", referenced from: 
    "_sqlite3_errmsg", referenced from: 
    "_sqlite3_busy_handler", referenced from: 
    "_sqlite3_reset", referenced from: 
    "_sqlite3_changes", referenced from: 
    "_sqlite3_open_v2", referenced from: 
    "_sqlite3_column_int64", referenced from: 
    "_sqlite3_next_stmt", referenced from: 
    "_sqlite3_bind_text", referenced from: 
    "_sqlite3_libversion", referenced from: 
    "_sqlite3_bind_parameter_count", referenced from: 
    "_sqlite3_bind_double", referenced from: 
    "_sqlite3_sleep", referenced from: 
    "_sqlite3_close", referenced from: 

    clang: error: linker command failed with exit code 1 (use -v to see invocation) 

轉到您的項目 - >常規 - >鏈接的框架和庫,你可以添加此libsqlite3.0.tbd。現在你可以建立你的項目和框架。

相關問題