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

编译Binutils时如何将-fcommon传入CFLAGS解决重定义错误

解决Binutils编译时-fcommon选项的传入错误问题

问题说明

编译Binutils的gas和gold组件时遇到多重定义错误,尝试通过添加-fcommon编译选项解决,但错误地将--fcommon作为configure的命令行参数传入,导致出现如下错误:

configure: error: unrecognized option: `--fcommon'

错误原因

-fcommon是GCC的编译选项,用于处理全局变量的多重定义问题,不是configure脚本的合法参数,直接加到configure命令行里会被识别为无效选项。

正确解决方法

将-fcommon追加到CFLAGS环境变量中,而非作为configure的命令行参数。修改编译脚本中CFLAGS的定义部分即可。

修改后的关键代码片段

# 将-fcommon加入CFLAGS变量
CFLAGS="`pkg-config --cflags 'libprotobuf-c >= 1.0.0'` -fcommon" LDFLAGS=`pkg-config --libs 'libprotobuf-c >= 1.0.0'` \
        ../configure --enable-gold --prefix=${PWD_PATH}/executable_binutils \
        --disable-werror --enable-shared \
         --enable-ld=default \
         --enable-plugins    \
         --enable-64-bit-bfd \
         --with-system-zlib \
        && make -j$(nproc)

说明

  • 移除了原命令中的--fcommon选项,避免configure报错
  • 在CFLAGS末尾添加-fcommon,让GCC在编译过程中启用该选项,解决多重定义问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:05:20