ios - 与 -bitcode_bundle 一起使用时,-headerpad_max_install_names 将被忽略

标签 ios xcode cmake linker-warning

构建我的 Xcode 项目会出现以下警告:

/ld:-1: -headerpad_max_install_names is ignored when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES)

如何针对此警告采取行动?

大概 Xcode 正在将此 headerpad_max_install_names 实体扔给正在提示的链接器。

但我看不到在哪里。 grepping 我的项目没有找到这个 token 。

我希望实现(并保持)零警告。

编辑:我发现 myproject/External/cmake-modules/ios.toolchain.cmake:

if (ENABLE_BITCODE)
  set(BITCODE "-fembed-bitcode")
  set(HEADER_PAD "")
  message(STATUS "Enabling bitcode support.")
else()
  set(BITCODE "")
  set(HEADER_PAD "-headerpad_max_install_names")
  message(STATUS "Disabling bitcode support.")
endif()

最佳答案

-headerpad_max_install_names 是一个链接器参数,根据您正在处理的项目,您可能可以禁用它。 Here's someone并描述了如何在 XCode 中更改它。

根据the LLVM change that introduced it , headerpad_max_install_names 将 header 填充足够的字节,以便 dylib ID 和加载的 dylib 路径都可以扩展到 MAXPATHLEN

这在许多项目的后续构建步骤中可能需要,从而允许重写 dylib 路径。如果您不需要更改任何安装名称(我认为它会增加二进制文件的可移植性),您可以将其关闭。

关于ios - 与 -bitcode_bundle 一起使用时,-headerpad_max_install_names 将被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57597424/

相关文章:

makefile - 如何启用多行日志而不是单行进度日志

python - 将 CMake 用于 Python 中的 C++ 扩展,使用 SWIG 并依赖于预先存在的库

c++ - 在 CMake 中链接 MySQL 库

objective-c - 自动布局约束 - 键盘

iphone - IOS 中的 GoogleAnalytics 并扩展了两个以上的类?

iphone - Storyboard 应用程序也可以在 iOS 5 之前的设备上运行吗?

ios - iOS 模型工厂

ios - 叠加场景/区域

ios - 使用 JAVAPNS 成功发送推送但未在客户端设备中接收

objective-c - 有没有办法(在构建时)判断我的 10.9 应用程序是否可以在 10.8 上运行?