Xcode 14.0搭配GCC-12编译时ld链接器断言失败问题求助
解决Xcode 14.0 ld链接器断言失败问题
方案1:升级Xcode到14.1+版本
Apple在Xcode 14.1中修复了这个链接器的断言错误,这是最彻底的解决方式:
- 打开App Store更新Xcode到最新稳定版
- 重新安装命令行工具:
xcode-select --install
方案2:改用Homebrew自带的链接器
Homebrew安装的g++-12配套有自己的链接器,可强制编译时使用它规避系统ld的问题:
- 直接编译时指定:
g++-12 -fuse-ld=gold your_source_files.cpp -o output - 若用CMake构建,在CMakeLists.txt中添加:
set(CMAKE_CXX_LINK_EXECUTABLE "/usr/local/bin/g++-12 -fuse-ld=gold <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
方案3:临时回退系统ld版本
如果暂时无法升级Xcode,可从Xcode 13.x的命令行工具中复制旧版ld:
- 找到旧版Command Line Tools中的ld路径(比如
/Library/Developer/CommandLineTools_13.4/usr/bin/ld) - 复制到本地用户目录并设置优先调用:
(若没有旧版本,可从同系统版本的其他Mac获取,或下载Xcode 13的Command Line Tools安装包)mkdir -p ~/bin cp /Library/Developer/CommandLineTools_13.4/usr/bin/ld ~/bin export PATH=~/bin:$PATH
方案4:清理构建缓存后重试
清理旧的构建文件,避免缓存导致的兼容问题:
make clean rm -rf CMakeCache.txt build/ cmake .. make
内容的提问来源于stack exchange,提问作者Ron
相关产品推荐
相关产品推荐

