自定义框架:链接二进制文件与库

时间:2012-02-01 09:13:13

标签: iphone ios static-libraries

我为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?

1 个答案:

答案 0 :(得分:4)

您的框架使用sqlite3框架,当您将框架发送给第三方开发人员时,只需记录他们还必须将项目链接到sqlite3。没有其他办法。

最好的例子是ASIHttp他们没有将代码打包到框架或静态库中,但如果你想使用它,你必须将你的项目链接到他们正在使用的框架。