Sht*_*man 3 binding dylib xamarin.ios
我想将Aviary SDK Objective-C库集成到Monotouch项目中.我使用'Monotouch Binding Project'模板.所以我创建了API定义文件并定义了LinkWith属性.
[assembly: LinkWith ("libAviarySDK.a", LinkTarget = LinkTarget.ArmV6 | LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true, IsCxx = true, Frameworks="CoreGraphics QuartzCore Accelerate StoreKit CoreData", LinkerFlags="-ObjC -all_load -fobjc-arc")]
Run Code Online (Sandbox Code Playgroud)
它需要以下库:
除了libsqlite3.0.dylib之外,所有这些框架都没有问题链接
我遇到的问题是,库依赖于libsqlite3.0.dylib,我不知道如何在我的MonoTouch应用程序中包含这些框架.
在结果中 - 编译器返回以下错误:
/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib -u _catch_exception_raise -force_load /var/folders/2n/ql7wkht57cg8wfgzz0cr9trm0000gn/T/tmp31d0b99b.tmp/libAviarySDK.a -ObjC -all_load -fobjc-arc
架构i386的未定义符号:
"_sqlite3_open",引自: - libAviarySDK.a中的[AFLocalyticsDatabase init](AFLocalyticsDatabase.o)
"_sqlite3_busy_timeout",引自: - libAviarySDK.a中的[AFLocalyticsDatabase init](AFLocalyticsDatabase.o)
"_sqlite3_exec",引自: - libAviarySDK.a中的[AFLocalyticsDatabase beginTransaction:](AFLocalyticsDatabase.o)
*和许多其他相同的参考*
ld:找不到架构i386的符号collect2:ld返回1退出状态
mtouch退出代码1
尝试添加-lsqlite3.0到您LinkerFlags的绑定,以指示(本机)链接器加载SQLite库(和符号).
[assembly: LinkWith ("your_lib.a", LinkTarget.ArmV7, ForceLoad = true, LinkerFlags="-lsqlite3.0")]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1455 次 |
| 最近记录: |