链接安装在MacOSX for iOS app上的dylib

时间:2014-11-09 18:47:59

标签: ios objective-c c xcode ios6

我想使用具有以下依赖关系的libcaldav。我已经构建了libcaldav.0.dylib,而其他依赖项在MAC上安装了port或brew

otool -L  ~/lib/libcaldav.0.dylib 
~/lib/libcaldav.0.dylib:
    ~/lib/libcaldav.0.dylib (compatibility version 1.0.0, current version 1.6.0)
    /opt/local/lib/libcurl.4.dylib (compatibility version 8.0.0, current version 8.0.0)
    /opt/local/lib/libgnutls.28.dylib (compatibility version 70.0.0, current version 70.1.0)
    /opt/local/lib/libgthread-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.0.0)
    /opt/local/lib/libglib-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.0.0)
    /opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.2.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

我尝试使用

将这些文件添加到Xcode ios应用程序中
  • 将二进制文件与库链接 - > Xcode构建阶段
  • 其他链接器标志 - >构建设置
  • 设置适当的搜索路径

然而,我收到以下警告和错误

  

ld:为iOS模拟器构建,但是针对为其构建的dylib进行链接   架构x86_64 clang的MacOSX文件'/lib/libcaldav.0.dylib':   错误:链接器命令失败,退出代码为1(使用-v查看   调用)

环境

  • Xcode = 6.1
  • 支持Platform = iOS
  • 有效架构= arm64,armv7和armv7s

libcaldav来源

https://github.com/fd00/yacp/tree/master/libcaldav

请帮助我,因为我一直在努力。请指点我需要做什么。

1 个答案:

答案 0 :(得分:0)

您需要为iOS而不是OS X构建这些库。具体来说,您需要使用iOS SDK和armv7和arm64。如果你想在iOS模拟器中使用它们,你需要针对iOS模拟器SDK(不针对主机SDK)为i386和x86_64构建它们。

请参阅cross compile libgcrypt static lib for use on iOS中的答案,了解有关如何执行此操作的一些提示。