HarmonyOS 鸿蒙Next编译产物进行strip
HarmonyOS 鸿蒙Next编译产物进行strip 构建链路没有配置对so产物进行strip,导致产物过大,是否有方法支持在构建链路中配置对so进行strip
sdk有llvm-strip工具可实现该功能,具体使用可参考开源文档,华为没有修改过。https://docs.oracle.com/cd/F16636_01/html/E71066/llvm-strip-1.html
大概介绍如下:
llvm-strip是一个用于剥离LLVM目标文件中的符号表和调试信息的工具。它可以通过以下命令使用:
llvm-strip [options] file…
其中,file是要剥离符号表和调试信息的目标文件,options是一些可选参数,例如:
-o file
:指定输出文件名。-R section
:从目标文件中删除指定的节。-S
:删除所有符号表。-g
:删除所有调试信息。-N symbol
:保留指定的符号。-K symbol
:从目标文件中删除指定的符号。
修改ohos.toolchain.cmake可达到相关效果,如:加-s可以默认strip ,set(CMAKE CXX FLAGS “${OHOS_C_COMPILER FLAGS} ${OHOS_CXX COMPILER FLAGS} $【CMAKE CXX FLAGS] -D__MUSL_ -s”)
或在build-profile.json5中的externalNativeOptions字段中的cppFlags字段配置“-s”参数
更多关于HarmonyOS 鸿蒙Next编译产物进行strip的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中,对编译产物进行strip操作主要是为了减小最终生成的可执行文件或库文件的大小,移除其中的符号表、调试信息等非必要内容。strip操作在鸿蒙系统中可以通过特定的工具链命令来实现,以下是基本的操作流程:
-
定位编译产物:首先,需要确定你的编译产物(如可执行文件或库文件)的具体位置。这些文件通常位于编译输出的目录中。
-
使用strip工具:鸿蒙系统提供了strip工具,用于执行strip操作。你可以在命令行中通过以下方式调用该工具(假设strip命令已经包含在系统路径中):
strip [选项] 文件名
其中,[选项]可以是控制strip行为的参数,如
-s
(移除所有符号)或-g
(仅移除调试符号)。文件名则是你要处理的编译产物的路径。 -
验证结果:执行strip操作后,你可以使用文件大小比较或查看工具来验证strip是否成功。通常,strip后的文件会比strip前的文件小。
请注意,strip操作是不可逆的,一旦执行,就无法恢复被移除的符号和调试信息。因此,在执行strip操作之前,请确保你已经备份了原始文件或不再需要这些信息。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,