【问题标题】:Undefined symbols for architecture i386 using libsqlite3.dylib with FMDB Xcode 7 ios9使用带有 FMDB Xcode 7 ios9 的 libsqlite3.dylib 架构 i386 的未定义符号
【发布时间】:2015-09-30 13:22:29
【问题描述】:

我正在使用 Xcode 7 和 iOS 9 创建一个简单的应用程序,它可以保存数据并使用 sqllite3 检索数据。但是,在使用 libsqlite3.dylib 库和从 github 检索到的 FMDB 构建应用程序时,我收到以下错误消息。

Undefined symbols for architecture i386:
  "_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:

四处搜索后我快把自己逼疯了,但找不到任何解决方案。请建议。提前致谢。

【问题讨论】:

    标签: ios swift sqlite fmdb xcode7-beta2


    【解决方案1】:

    您的项目似乎没有链接到 libsqlite3。仔细检查它是否链接到它,如果是,则将其添加为链接器标志。

    【讨论】:

    • 感谢您的回复,但是如何将项目添加为链接器标志?我是 iOS 开发新手,还不确定
    【解决方案2】:

    检查是否在 Build Phases 的 Link Binary with Libraries 部分中添加了 libsqlite3.dylib

    【讨论】:

    • 感谢您的回答!我在构建阶段有相同的设置。即使我尝试添加两个 sqlite3 文件。不过还是有同样的问题
    • @RegisSt-Gelais 我在 Xcode 7 中遇到了同样的问题,除了我已经在列表中添加了 libsqlite3.tbd
    猜你喜欢
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 2011-10-30
    相关资源
    最近更新 更多