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

在R中加载curl包时遇共享对象加载错误求助

解决R中curl包加载时_curl_url_strerror符号找不到的错误

错误原因

这个报错是因为R的curl包编译时依赖的libcurl库版本过低,_curl_url_strerror是libcurl 7.85.0及以上版本才新增的函数,而Mac系统自带的libcurl通常版本较旧,导致链接时找不到该符号。

解决步骤

1. 检查并更新系统libcurl(通过Homebrew)

  • 打开终端,先更新Homebrew:
    brew update
    
  • 安装或更新最新版libcurl:
    brew install curl
    

2. 指定Homebrew版libcurl重新编译R的curl包

  • 打开R(或RStudio),先卸载现有curl包:
    remove.packages("curl")
    
  • 根据你的Mac架构设置环境变量:
    • Intel芯片Mac:
      Sys.setenv(CURL_LIBS = "-L/usr/local/opt/curl/lib -lcurl")
      Sys.setenv(CURL_CFLAGS = "-I/usr/local/opt/curl/include")
      
    • Apple Silicon(M1/M2/M3)芯片Mac:
      Sys.setenv(CURL_LIBS = "-L/opt/homebrew/opt/curl/lib -lcurl")
      Sys.setenv(CURL_CFLAGS = "-I/opt/homebrew/opt/curl/include")
      
  • 从源码重新安装curl包:
    install.packages("curl", type = "source")
    

3. 验证修复

安装完成后,加载curl包测试:

library(curl)

如果没有报错,说明问题解决。

备选方案(临时生效)

如果上述方法无效,可以临时指定动态库路径再启动R:

  • 终端中执行:
    # Intel Mac
    export DYLD_LIBRARY_PATH=/usr/local/opt/curl/lib:$DYLD_LIBRARY_PATH
    # Apple Silicon Mac
    export DYLD_LIBRARY_PATH=/opt/homebrew/opt/curl/lib:$DYLD_LIBRARY_PATH
    
  • 从终端启动R:
    R
    
  • 加载curl包测试。若有效,可将上述export命令添加到~/.zshrc(或~/.bash_profile,取决于你使用的shell)中,实现永久生效。

额外检查

确保已安装Xcode命令行工具,若未安装,终端执行:

xcode-select --install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:48:21