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

升级Xcode 15后无法使用g++-13编译独立C++程序求助

解决方案

1. 消除 ld: warning: ignoring duplicate libraries: '-lgcc' 警告

  • 问题根源:Xcode 15更新后,链接器ld会自动引入gcc相关依赖库,手动在编译参数中添加-lgcc就会触发重复引用警告。
  • 修复步骤:
    • 检查编译脚本、Makefile或构建配置,移除手动添加的-lgcc参数;
    • 若使用CMake,找到target_link_libraries或CMAKE_EXE_LINKER_FLAGS配置项,删除其中的-lgcc;
    • 若无法直接移除参数,可添加链接选项-Wl,--no-duplicate-libs,强制ld忽略重复库警告(优先推荐直接移除重复参数)。

2. Xcode 15下正常使用g++-13编译独立C++程序

Xcode 15调整了系统链接器路径,导致第三方gcc工具链的链接环节出错,可通过以下方式修复:

  • 指定替代链接器
    在编译命令中显式指定g++-13兼容的链接器,例如使用lld:
    g++-13 your_program.cpp -o your_program -fuse-ld=lld
    
    或指定gcc自带的gold链接器(路径根据你的安装位置调整):
    g++-13 your_program.cpp -o your_program -Wl,--ld-path=/usr/local/bin/ld.gold
    
  • 配置环境变量
    临时设置环境变量,让g++-13优先调用自身的工具链组件:
    export PATH="/usr/local/opt/gcc/bin:$PATH"
    export LDFLAGS="-L/usr/local/opt/gcc/lib/gcc/13"
    
    设置完成后再执行编译命令即可。
  • 指定SDK路径
    编译时通过-isysroot参数指定Xcode 15的SDK路径,确保g++-13能正确找到系统库:
    g++-13 your_program.cpp -o your_program -isysroot $(xcrun --show-sdk-path)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:27:01