首页 > 解决方案 > -dead_strip 与 --gc-sections 链接器选项

问题描述

我正在尝试使用 CMake 在 Android 和 iOS 上交叉构建一个 SW。Android 项目使用 GNU ld,而 iOS 使用lld. 我需要添加链接器选项,以将链接库中的死代码剥离到两个工具链中。我确定了在 GNUld上添加链接器选项以及添加链接器选项的--gc-sections方法。所以,我的问题是:是否有另一种方法来检查交叉编译平台,如下所示?lld-dead_strip

if(CMAKE_SYSTEM_NAME STREQUAL Android)
   target_link_options(GarminAis PRIVATE LINKER:--gc-sections)
elseif(CMAKE_SYSTEM_NAME STREQUAL APPLE)
   target_link_options(GarminAis PRIVATE LINKER:-dead_strip)
endif()

我强烈希望采用统一的方法。

提前感谢您的帮助

标签: cmake

解决方案


推荐阅读