-headerpad_max_install_names 在与 -bitcode_bundle 一起使用时被忽略

-headerpad_max_install_names is ignored when used with -bitcode_bundle

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

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

如何根据此警告采取行动?

大概 Xcode 将这个 headerpad_max_install_names 实体扔给正在抱怨的链接器。

但我看不到 WHERE。 grepping 我的项目没有找到这个令牌。

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

编辑:我发现 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 itheaderpad_max_install_names 用足够的字节填充header,这样dylib ID和加载的dylib路径都可以扩展到MAXPATHLEN.

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