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

MacOS下使用Rust Cargo时NSInvalidArgumentException异常的解决方法

问题

通过Rust官网提供的官方curl命令:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

在MacOS系统上安装了Rust,rustc --version显示安装正常,但执行cargo --version或cargo new backend等Cargo命令时,抛出NSInvalidArgumentException异常,重启系统无效。异常信息如下:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString stringByStandardizingPath]: unrecognized selector sent to instance 0x60000133c0c0'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000018d2ec570 __exceptionPreprocess + 176
    1   libobjc.A.dylib                     0x000000018cdddeb4 objc_exception_throw + 60
    2   CoreFoundation                      0x000000018d39e12c -[NSObject(NSObject) __retain_OA] + 0
    3   CoreFoundation                      0x000000018d2567d4 ___forwarding___ + 1572
    4   CoreFoundation                      0x000000018d2560f0 _CF_forwarding_prep_0 + 96
    5   Foundation                          0x000000018e32c860 -[NSProcessInfo arguments] + 188
    6   CoreFoundation                      0x000000018d367d48 __getDefaultArguments_block_invoke + 96
    7   libdispatch.dylib                   0x000000018cfe8910 _dispatch_client_callout + 20
    8   libdispatch.dylib                   0x000000018cfea14c _dispatch_once_callout + 32
    9   CoreFoundation                      0x000000018d3676e4 _addBackstopValuesForIdentifierAndSource + 640
    10  CoreFoundation                      0x000000018d221ffc __81-[_CFXPreferences(SourceAdditions) withNamedVolatileSourceForIdentifier:perform:]_block_invoke + 144
    11  CoreFoundation                      0x000000018d36738c -[_CFXPreferences withNamedVolatileSourceForIdentifier:perform:] + 272
    12  CoreFoundation                      0x000000018d22836c -[CFPrefsSearchListSource addNamedVolatileSourceForIdentifier:] + 136
    13  CoreFoundation                      0x000000018d3a660c __108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke.155 + 296
    14  CoreFoundation                      0x000000018d3a62b4 -[_CFXPreferences withSearchLists:] + 84
    15  CoreFoundation                      0x000000018d2238c0 __108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke + 300
    16  CoreFoundation                      0x000000018d3a6460 -[_CFXPreferences withSearchListForIdentifier:container:cloudConfigurationURL:perform:] + 384
    17  CoreFoundation                      0x000000018d2231e8 -[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:] + 156
    18  CoreFoundation                      0x000000018d223110 _CFPreferencesCopyAppValueWithContainerAndConfiguration + 112
    19  SystemConfiguration                 0x000000018dfb5478 SCDynamicStoreCopyProxiesWithOptions + 180
    20  libcurl.4.dylib                     0x00000001042a6d48 Curl_macos_init + 16
    21  libcurl.4.dylib                     0x000000010428be5c global_init + 172
    22  libcurl.4.dylib                     0x000000010428bda0 curl_global_init + 68
    23  cargo                               0x0000000103266878 _ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17h9969c74c6cd47fe4E + 36
    24  cargo                               0x000000010337423c _ZN3std10sys_common4once5queue4Once4call17hcf0ec3e1860a2be3E + 724
    25  cargo                               0x0000000103266a5c _ZN4curl9INIT_CTOR9init_ctor17hcaba8dae76a2e3deE + 96
    26  dyld                                0x000000018ce35a24 ___ZZNK5dyld46Loader25findAndRunAllInitializersERNS_12RuntimeStateEENK3$_0clEv_block_invoke + 168
    27  dyld                                0x000000018ce7b328 ___ZNK5dyld313MachOAnalyzer18forEachInitializerER11DiagnosticsRKNS0_15VMAddrConverterEU13block_pointerFvjEPKv_block_invoke.209 + 340
    28  dyld                                0x000000018ce6e668 ___ZNK5dyld39MachOFile14forEachSectionEU13block_pointerFvRKNS0_11SectionInfoEbRbE_block_invoke + 496
    29  dyld                                0x000000018ce152fc _ZNK5dyld39MachOFile18forEachLoadCommandER11DiagnosticsU13block_pointerFvPK12load_commandRbE + 300
    30  dyld                                0x000000018ce6d6a0 _ZNK5dyld39MachOFile14forEachSectionEU13block_pointerFvRKNS0_11SectionInfoEbRbE + 192
    31  dyld                                0x000000018ce7ae3c _ZNK5dyld313MachOAnalyzer18forEachInitializerER11DiagnosticsRKNS0_15VMAddrConverterEU13block_pointerFvjEPKv + 516
    32  dyld                                0x000000018ce31b38 _ZNK5dyld46Loader25findAndRunAllInitializersERNS_12RuntimeStateE + 524
    33  dyld                                0x000000018ce37f70 _ZNK5dyld416JustInTimeLoader15runInitializersERNS_12RuntimeStateE + 36
    34  dyld                                0x000000018ce31f24 _ZNK5dyld46Loader23runInitializersBottomUpERNS_12RuntimeStateERN5dyld35ArrayIPKS0_EE + 220
    35  dyld                                0x000000018ce35ab0 _ZZNK5dyld46Loader38runInitializersBottomUpPlusUpwardLinksERNS_12RuntimeStateEENK3$_1clEv + 112
    36  dyld                                0x000000018ce320f0 _ZNK5dyld46Loader38runInitializersBottomUpPlusUpwardLinksERNS_12RuntimeStateE + 380
    37  dyld                                0x000000018ce574dc _ZN5dyld44APIs25runAllInitializersForMainEv + 464
    38  dyld                                0x000000018ce19fa0 _ZN5dyld4L7prepareERNS_4APIsEPKN5dyld313MachOAnalyzerE + 3192
    39  dyld                                0x000000018ce18edc start + 1844
)
libc++abi: terminating due to uncaught exception of type NSException
[1]    85046 abort      cargo --version

解决方案

1. 重置系统代理设置

  • 打开「系统设置」→「网络」→ 选中当前网络(如Wi-Fi)→ 点击「详细信息」→「代理」
  • 取消所有代理选项的勾选,点击「应用」保存
  • 重启终端后测试Cargo命令

2. 清除代理环境变量

终端执行以下命令临时清除可能干扰curl的环境变量:

unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy ALL_PROXY all_proxy

之后执行cargo --version验证是否恢复正常

3. 重新安装Rust并指定系统libcurl

先卸载现有Rust:

rustup self uninstall

重新安装时强制使用系统自带的libcurl:

export CARGO_HTTP_CURL_PATH=/usr/bin/curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

4. 修复libcurl库链接冲突

执行命令查看cargo依赖的libcurl路径:

otool -L ~/.cargo/bin/cargo | grep curl

如果输出的不是系统默认的/usr/lib/libcurl.4.dylib,执行以下命令重新链接:

install_name_tool -change /path/to/incorrect/libcurl.4.dylib /usr/lib/libcurl.4.dylib ~/.cargo/bin/cargo

替换命令中的/path/to/incorrect/libcurl.4.dylib为otool输出的错误路径


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:59:53