You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何arm-linux-gcc与aarch64-linux-gcc工具链不支持Sanitizers?

原因分析
  • 交叉工具链默认未包含Sanitizers支持:你使用的ARM/aarch64交叉编译工具链(包括Xilinx的arm-xilinx-linux-gnueabi和通用aarch64-linux-gnu),为适配嵌入式设备有限的资源,默认不会编译ASAN这类Sanitizer的运行时库(libasan.so)。Sanitizers会大幅增加二进制体积并带来性能开销,不符合多数嵌入式场景的需求,所以工具链构建时默认关闭了该功能。
  • 工具链构建时未开启Sanitizers编译选项:构建GNU交叉工具链时,必须显式添加--enable-sanitizers这类配置参数,才会编译ASAN、UBSAN等Sanitizer的支持库。如果工具链的构建者没有设置这个选项,链接阶段自然找不到-lasan对应的库文件。
  • 嵌入式系统的硬件/软件限制:像ASAN这类Sanitizer对运行环境有要求,比如需要足够的内存、动态链接器的配合,以及Linux内核的特定内存管理特性。很多低配置的ARM嵌入式设备无法满足这些条件,工具链开发者也就默认不提供该支持,避免冗余功能占用空间。

内容的提问来源于stack exchange,提问作者Caglayan Dokme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:22:44