首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何构建项目催化剂的OpenSSL库?

如何构建项目催化剂的OpenSSL库?
EN

Stack Overflow用户
提问于 2019-06-05 10:51:51
回答 2查看 1.6K关注 0票数 8

我必须在我的项目中支持OpenSSL为UIKitForMac构建iPad应用程序。目前,我发现了这些错误。

为Mac构建UIKit,但链接库'libssl.a‘是为独立构建的。您可能需要限制应该在目标编辑器中链接此库的平台。 为Mac构建UIKit,但链接库‘libcryption.a’是为独立构建的。您可能需要限制应该在目标编辑器中链接此库的平台。

我读过关于XCFrameworks的文章,但是苹果并没有在这里发布太多的信息。有人想出了构建方案吗?

EN

回答 2

Stack Overflow用户

发布于 2019-12-27 15:44:37

评论中的解决方案对我不起作用。但是,我只是像以前那样构建不同的库: iOS,通过添加构建参数:-target x86_64-apple-ios13.0-macabi和在-isysroot中定义Mac,为-isysroot构建另一个libs。之后,我只需有条件地为每个构建版本添加每个库,它就能工作了。

票数 3
EN

Stack Overflow用户

发布于 2020-05-26 16:00:15

在许多失败的尝试和谷歌搜索之后,我越来越沮丧,我成功地为催化剂构建了openSSL 1.1.1g,编译了我的项目,链接了openSSL,并通过以下操作在我的Mac上启动了这个应用程序:

  1. 我使用了以前提取并为IOS构建openSSL的目录。
  2. 按照这里的指令,我编辑了<openSSL directory>/Configurations/10-main.conf。向下滚动到"darwin64-x86_64-cc"部分,我添加了第二行CFLAGS

=> add("-target x86_64-apple-ios13.0-macabi"),

  1. 在openSSL目录中,执行./Configure darwin64-x86_64-cc -shared注意到,我看到了这个配置语句的其他几个版本,其中一些还有更多的选项。这个命令对我有效,但我不知道其他所有的变体都做些什么。你可能想进一步研究这个问题。
  2. 执行make clean以清除先前IOS构建中的所有对象
  3. 执行make这个成功构建的openSSL。
  4. 在Xcode中,在->通用->“框架、库和嵌入式内容”下,我删除了libcryp.a和libssl.a --这是一个关键步骤--
  5. 切换选项卡与库一起构建阶段->链接二进制文件,验证这两个档案也从本节中删除。(在第5步中,移除它们似乎也在步骤6中清除了它们,但我不确定)。
  6. 回到通用->框架中,单击+添加新条目,在弹出窗口的左下角选择"add“,然后提供新构建的libcryp.a的路径。对libssl.a重复
  7. 删除终端窗口中的派生数据(我不确定这是必要的,但出于非常谨慎的考虑):

cd ~/Library/Developer/Xcode mv DerivedData DerivedData.old

  1. 用Xcode构建项目。这件事成功完成了。

第5-7步被证明是关键的步骤。即使我移动和/或完全替换了以前的库,当我尝试用Xcode构建时,我会得到我为MacOS Catalina构建的链接器错误,但是我试图链接为MacOS x86构建的东西。

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

https://stackoverflow.com/questions/56459036

复制
相关文章

相似问题

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