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

如何在Bazel+GCC 10.2环境下使用mold链接器替代默认ld?

解决Bazel + GCC下使用mold链接器的方法

方法1:通过环境变量指定编译器参数

直接在启动Bazel时设置CC和CXX环境变量,将-B参数嵌入编译器命令:

CC="gcc -B/usr/local/libexec/mold" CXX="g++ -B/usr/local/libexec/mold" bazel build //src:XXX

这种方式会让Bazel全程使用带路径参数的GCC/G++,确保链接阶段调用mold。

方法2:使用--linker_flags参数传递选项

--linkopt无法正确传递-B这类影响链接器选择的参数,改用--linker_flags直接传递给链接驱动:

bazel build --linker_flags="-B/usr/local/libexec/mold" //src:XXX

方法3:配置.bazelrc实现长期生效

在项目根目录创建.bazelrc文件,添加以下内容:

build:mold --action_env=CC="gcc -B/usr/local/libexec/mold"
build:mold --action_env=CXX="g++ -B/usr/local/libexec/mold"

后续编译只需指定配置即可:

bazel build --config=mold //src:XXX

验证链接器是否生效

编译完成后,用以下命令检查二进制文件的链接器信息:

readelf -p .comment 目标二进制文件路径

输出中出现mold版本信息即说明配置成功。

内容的提问来源于stack exchange,提问作者very hit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:33:23