-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。 grep
ping 我的项目没有找到这个令牌。
我想实现(并保持)零警告。
编辑:我发现
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 路径。如果您不需要更改任何安装名称(我认为这会增加二进制文件的可移植性),您可以将其关闭。
构建我的 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。 grep
ping 我的项目没有找到这个令牌。
我想实现(并保持)零警告。
编辑:我发现 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 路径。如果您不需要更改任何安装名称(我认为这会增加二进制文件的可移植性),您可以将其关闭。