我为iPhone开发了自己的框架。在我的课程中,我有用于管理SQLite数据库的类。所以我需要将我的框架与libsqlite3.dylib链接起来。编译/创建框架是有效的,但是当我在应用程序中链接我的自定义框架并编译它时,我会收到如下错误:
架构i386的未定义符号: “_sqlite3_open”,引用 从: - [CSQLite open:ext:copyDataBase:]在CUtils(CSQLite.o)“_ sqlite3_create_function”中,引自: - [CSQLite open:ext:copyDataBase:]在CUtils(CSQLite.o)“_ sqlite3_value_text”中,引自: CUtils中的_sql_regexp(CSQLite.o)“_ sqlite3_result_int”,引自: CUtils中的_sql_regexp(CSQLite.o)“_ sqlite3_close”,引自: - CUtils中的[CSQLite close](CSQLite.o)“_ sqlite3_prepare”,引自: - [CSQLite查询:行:]在CUtils(CSQLite.o)
通过在我的应用程序中链接libsqlite3.dylib,错误消失了。
有没有办法直接在我自己的框架内链接libsqlite3.dylib,还是需要在应用程序中始终添加libsqlite3.dylib?
答案 0 :(得分:4)
您的框架使用sqlite3框架,当您将框架发送给第三方开发人员时,只需记录他们还必须将项目链接到sqlite3。没有其他办法。
最好的例子是ASIHttp他们没有将代码打包到框架或静态库中,但如果你想使用它,你必须将你的项目链接到他们正在使用的框架。