Phi*_*lip 11 macos xcode objective-c dylib libcurl
我在OS 10.7 Lion上构建和编译的Mac项目中使用libcurl.我可以使用其他链接器标志中的-lcurl选项或通过将库添加到我的项目来链接到动态库.一切都按照应有的方式运作.
我希望该应用程序也适用于OS 10.6和10.5.我相应地设置了部署目标.当我在其中一个版本的OS中运行应用程序时,我得到一个dyld错误:
库未加载:/usr/lib/libcurl.4.dylib原因:不兼容的库版本:X需要7.0.0或更高版本,但libcurl.4.dylib提供版本6.0.0.
这是Mac OS 10.5的类似问题.
如何在Mac OS 10.7上的Xcode中链接系统的libcurl库,以便应用程序也可以在10.6和10.5上运行?
我看了几个选项:
一个是更改Base SDK,如本文所述: Mac OS X libcurl dylib兼容版本如果我这样做,应用程序工作正常.但这对我来说不是一个选择.我必须使用10.7 SDK,因此不能接受回归到旧版本的SDK.
我尝试使用Other Linker Flags中的-weak_library /usr/lib/libcurl.dylib选项对库进行弱链接.应用程序启动但在我尝试引用libcurl符号时崩溃.但是,我知道不兼容的代码不是问题,因为它在我更改Base SDK时有效.
我尝试使用dlopen("libcurl.dylib",RTLD_LOCAL | RTLD_LAZY)在代码中动态加载库; 该库似乎加载,但我必须手动绑定我引用的所有符号?
当然必须有办法做到这一点.libcurl库安装在Mac OS 10.5,10.6和10.7上,但应用程序无法在旧版Mac OS上使用可用库.我怎样才能解决这个问题?
一些选择:
| 归档时间: |
|
| 查看次数: |
2925 次 |
| 最近记录: |