如何为 iOS 编译带有 fvisibility=hidden 标志的 openssl

Posted

技术标签:

【中文标题】如何为 iOS 编译带有 fvisibility=hidden 标志的 openssl【英文标题】:how to compile openssl with fvisibility=hidden flag for iOS 【发布时间】:2019-12-22 09:03:06 【问题描述】:

我需要用 -fvisibility=hidden 编译 openssl 代码以隐藏大量符号,然后在 Xcode 中使用。 使用下面的 GitHub 链接.. 我可以获得 libssl.a 和 libcrypto.a 但没有选项我可以看到 build-libssl.sh(shell 脚本)添加选项“-fvisibility=hidden”。

https://github.com/x2on/OpenSSL-for-iPhone/blob/master/build-libssl.sh

我确实尝试在 Xcode 的构建设置的“其他 C 标志”中添加“-fvisibility=hidden”,但似乎不起作用。因此,请就此问题提出建议。

【问题讨论】:

【参考方案1】:

根据提到的 GitHub 链接,转到脚本文件夹 -> build-loop-archs.sh 然后编辑此文件“build-loop-archs.sh”并将“-fembed-bitcode”替换为“-fvisibility=hidden”,然后保存并运行脚本。它会起作用的。

为 SDK 嵌入位码 >= 9

 if [ "$CONFIG_DISABLE_BITCODE" != "true" ]; then
    if [[ "$SDKVERSION" == 9.* || "$SDKVERSION" == [0-9][0-9].* ]]; then
      LOCAL_CONFIG_OPTIONS="$LOCAL_CONFIG_OPTIONS -fvisibility=hidden"
    fi
  fi

https://github.com/x2on/OpenSSL-for-iPhone/blob/master/build-libssl.sh

【讨论】:

以上是关于如何为 iOS 编译带有 fvisibility=hidden 标志的 openssl的主要内容,如果未能解决你的问题,请参考以下文章

如何为 iOS7 (arm64) 编译 OpenCV

如何为 iOS 应用动态设计或创建带有动态 ui 控件的视图

带有SpriteKit的iOS通用设备应用程序,如何为所有视图缩放节点?

带有 HTML 5 的混合 iOS 应用程序,如何为远程服务器提供凭据

如何为带有应嵌入视图控制器的句子的文本文件制作 iOS Swift“应用内购买”托管内容 pkg 文件?

你如何为设备和模拟器编译 PJSip iPhone 以在 iOS 3 和 iOS 4 上使用虹吸管?