我正在尝试将SQLite amalgamation源代码编译到我的iPhone应用程序中(让我可以访问iPhone编译版本的二进制文件中没有的全文搜索功能。
当我将sqlite3.c和sqlite3.h添加到普通的Carbon C应用程序模板时,它编译得很好(只有一个关于未使用变量的警告),但当我尝试在我的iPhone项目中编译它时,我得到一个数字与缺少函数声明有关的错误。我能够通过明确地包含ctype.h来解决这些问题,但这有点奇怪。
但是,即使在构建之后,它仍然无法链接以下错误:
"_sqlite3_version", referenced from:
_sqlite3_version$non_lazy_ptr in sqlite3.0
symbol(s) not found
collect2: ld returned 1 exit status
我认为这是iPhone应用程序的构建设置中的内容,但我无法理解。有什么想法吗?
答案 0 :(得分:6)
尝试执行此步骤:
答案 1 :(得分:1)
我已经设法使用合并并将其直接转储到我的项目中而无需建议链接catlan(我不是说这是一个坏主意,只是它可以在主项目中完成)。
我不需要编辑任何东西(除了为文本搜索添加必要的FTS定义)和编译错误。检查您的构建设置,确保“-sqlite3”不在您的其他链接标志中。
答案 2 :(得分:0)
这种类型的错误通常意味着缺少框架。
我认为应该照顾它。您可能需要添加类似的库才能在iPhone模拟器上运行。