首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接到Leopard的libcrypto?

链接到Leopard的libcrypto?
EN

Stack Overflow用户
提问于 2010-04-11 10:41:41
回答 5查看 8.6K关注 0票数 11

我正在使用MacOSX10.6SDK,我的部署目标设置为MacOS10.5。我链接到libcrypto (AquaticPrime需要这个),发现我的应用程序没有在Leopard上启动。错误是

dyld: Library not loaded: /usr/lib/libcrypto.0.9.8.dylib

我尝试过以下解决办法,但没有一种有效:

直接链接到libcrypto.0.9.7.dylib.

  • Copying的
  • (10.6SDK拒绝与libcrypto.0.9.7.dylib直接链接到10.6lib目录,并尝试与其链接(这一次链接过程成功,但在Leopard中,应用程序仍然试图查找不存在的libcrypto.0.9.8.dylib文件,因此无法从Mac 10.5.8安装并与之链接(链接成功,但应用程序仍在寻找libcrypto.0.9.8.dylib).

)。

是否有办法链接到这个库,但仍然使用10.6SDK?

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-14 11:20:06

您可以尝试在目标构建设置中将基本SDK设置设置为10.5。

票数 1
EN

Stack Overflow用户

发布于 2010-04-12 08:28:33

根据这里的这个线程(在线程中的第一篇文章:http://lists.apple.com/archives/cocoa-dev/2009/Aug/msg01737.html,“雪豹上的libcrypto”线程列表:http://lists.apple.com/archives/cocoa-dev/2009/Aug/thrd19.html ),我认为解决方案是执行以下操作:

  1. 转到/Developer/SDKs/MacOSX10.5.sdk/usr/lib/。从该文件夹中,将“libcryp.0.9.7.dylib”复制到您的项目源文件夹中。
  2. 将您刚刚复制的文件重命名为

,将您刚刚重命名的文件重命名为您的项目。确保从您的项目中删除任何其他链接的libcrypto框架。

  1. 遍历您的构建设置,并确保您删除了"-lcrypto“链接器标志。(它通常放在“其他链接器标志”设置中。)

现在,您应该能够构建您的项目,它将工作在10.5和10.6。

(libcryp.0.9.7可在10.5和10.6上使用。您复制的文件只是头的存根,但您只是针对它进行链接,而不是将其嵌入到项目中。由于链接器使用的是安装路径,而不是dylib的实际文件名,因此将其命名为"libmycrypto.dylib“可以消除路径冲突,但仍然允许您根据所需的库进行链接。

FWIW,这是Xcode问题您应该能够链接到/usr/lib/libcryp.dylib --这是一个符号链接--并让它在10.5和10.6上都指向libcrypto的正确版本。然而,Xcode在构建雪豹时似乎总是链接到0.9.8版本,因为某些原因。)

票数 22
EN

Stack Overflow用户

发布于 2010-09-29 18:27:13

根据您使用lib的用途,您可能可以用CommonCrypto替换libcrypto,后者与10.5和10.6都能很好地工作。我只在MD5函数中使用libcrypto,所以我用CommonCrypto/CommonDigest.h和MD5()替换了openssl/md5.h,用CC_MD5()代替了libcrypto,用CommonCrypto代替了libcrypto,现在它可以在两个Leopards上工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2616738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档