如何为 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的主要内容,如果未能解决你的问题,请参考以下文章
如何为 iOS 应用动态设计或创建带有动态 ui 控件的视图
带有SpriteKit的iOS通用设备应用程序,如何为所有视图缩放节点?
带有 HTML 5 的混合 iOS 应用程序,如何为远程服务器提供凭据