xcode 更新到版本 2395. ld 编译问题发生:computedAtomCount &&“分配的原子比预期的多

在我在 M1 Mac 中将 xcode 更新到新版本后,然后使用 make 编译 c++。出现以下问题:

0  0x1010c81a0  __assert_rtn + 140
1  0x100f4fa8c  mach_o::relocatable::Parser<arm64>::parse(mach_o::relocatable::ParserOptions const&) + 4536
2  0x100f21d38  mach_o::relocatable::Parser<arm64>::parse(unsigned char const*, unsigned long long, char const*, long, ld::File::Ordinal, mach_o::relocatable::ParserOptions const&) + 148
3  0x100f8a4ac  ld::tool::InputFiles::makeFile(Options::FileInfo const&, bool) + 1468
4  0x100f8d360  ___ZN2ld4tool10InputFilesC2ER7Options_block_invoke + 56
5  0x1893941f4  _dispatch_client_callout2 + 20
6  0x1893a7954  _dispatch_apply_invoke + 224
7  0x1893941b4  _dispatch_client_callout + 20
8  0x1893a5a04  _dispatch_root_queue_drain + 680
9  0x1893a6104  _dispatch_worker_thread2 + 164
10  0x189554324  _pthread_wqthread + 228
A linker snapshot was created at:
    /tmp/smr_dense_SL-2022-09-14-165143.ld-snapshot
ld: Assertion failed: (_file->_atomsArrayCount == computedAtomCount && "more atoms allocated than expected"), function parse, file macho_relocatable_file.cpp, line 2061.
collect2: error: ld returned 1 exit status
make: *** [smr_dense_SL] Error 1
stack overflow xcode update to version 2395. ld compile problem occurs: computedAtomCount && "more atoms allocated than expected
原文答案

答案:

作者头像

问题出在 XCode 14.0 版本上,我已经测试并确认了该版本。

将您的命令行工具版本降级到 13.4,它将得到解决。

首先从苹果开发者网站下载命令行工具并安装: https://download.developer.apple.com/Developer_Tools/Command_Line_Tools_for_Xcode_13.4/Command_Line_Tools_for_Xcode_13.4.dmg

您可以使用以下命令更改版本:

sudo xcode-select --switch /Library/Developer/CommandLineTools

要检查当前选择的 xcode 命令行工具的版本,请使用以下命令:

pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

确保它是 13.4。

围绕这个有多个 GitHub 讨论:

https://github.com/iains/gcc-12-branch/issues/6 https://github.com/Homebrew/discussions/discussions/3659

作者头像

还有另一种方法可以解决这个问题

#pragma GCC optimize("O2")

等到 Xcode 解决这个问题