4

我正在使用 libsqlite3.dylib 并在编译我的项目时收到以下错误。

ld: warning: ignoring file /Users/dcdmc/Documents/Beginning iPhone 5 Dev/Persistence copy/libsqlite3.dylib, 
             missing required architecture i386 in file
Undefined symbols for architecture i386:

"_sqlite3_open", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_close", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_exec", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o

"_sqlite3_prepare_v2", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_step", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_column_int", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o

"_sqlite3_column_text", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o

"_sqlite3_finalize", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_bind_int", referenced from:
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_bind_text", referenced from:
  -[OJViewController applicationWillResignActive:] in OJViewController.o

ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

4 回答 4

10

首先进行备份并检查您是否将此框架物理复制到其根目录中的项目文件夹中,如果您在那里找到它,只需从那里删除它并在之后重新构建。希望它有所帮助。

于 2012-06-19T12:44:38.033 回答
1

你的目标是模拟器吗?

问题是:

  1. 为iOS模拟器编译时,架构为i386
  2. 为 iOS 设备编译时,arch 为 armv6/armv7

您的项目包含一个不包含 i386 代码的动态库。

由于该库是 SQLite,因此我的建议是不要将其作为动态库包含在内;相反,将源代码直接包含在您的项目中(它只有 2 个文件:sqlite.c 和 sqlite.h)。您可以从以下网址下载 sqlite 的源代码:http ://www.sqlite.org

于 2012-06-19T12:51:27.967 回答
0

包括你在类中的 sqlite 操作之前使用的这个

#include <sqlite3.h>
于 2012-06-19T12:37:26.443 回答
0

我对 iOS 开发非常陌生,但我正在阅读 Apress 的书“开始 iOS 6 开发”,并在第 13 章遇到了一个非常相似的问题。我不得不使用 Text mate 打开 (YourProjectName) 中的 project.pbxproj 文件。 xcodeproj 文件并删除“LIBRARY_SEARCH_PATHS”。有两条不同的行,一条是调试构建设置,另一条是发布构建设置。我希望这对某人有所帮助。

于 2013-04-26T16:02:27.690 回答