You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

64位Windows下R更新后devtools安装GitHub包x64编译失败求助

解决64位Windows下R从源码安装x64包失败的问题

嘿,我碰到过好几次类似的问题,本质就是32位MinGW工具链误跑到64位编译流程里捣乱了,给你一步步捋清楚怎么解决:

1. 先确认基础环境的匹配性

首先得确保你的R和编译工具链都是正经64位的:

  • 打开R跑个 sessionInfo(),看输出里的arch是不是x86_64(也就是x64),别装成32位R了
  • 检查你的Rtools安装路径,64位工具链一般在C:/Rtools/mingw64/,32位的是mingw32/,别搞混

2. 调整环境变量,让64位工具优先被调用

Windows的环境变量顺序直接决定编译时用哪个工具,必须把64位MinGW的路径放到前面:

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 找到系统变量里的Path,点编辑:
    • C:/Rtools/mingw64/bin拖到C:/Rtools/mingw32/bin前面
    • 别忘了把C:/Rtools/bin也留在Path里,这是Rtools的辅助工具路径
  • 重启RStudio或者终端,让新的环境变量生效

3. 强制指定仅编译x64架构

要是环境变量调完还不行,直接在安装时明确告诉R只搞64位:

  • 用基础的install.packages的话,加这俩参数:
    install.packages("你的包名", type = "source", INSTALL_opts = "--no-multiarch")
    
  • 用devtools的话,把参数加到args里:
    devtools::install_github("用户名/包名", args = "--no-multiarch")
    
    这个--no-multiarch会强制跳过32位编译,避免两个架构的工具链打架

4. 检查Rtools安装是否完整

有时候Rtools装到一半出问题也会导致这种锅:

  • 先卸载现有Rtools,去官网下对应你R版本的(比如R3.4.x对应Rtools34)
  • 安装时一定要勾选「Add Rtools to system PATH」,省得自己手动调路径出问题

5. 验证工具链是否正常工作

打开CMD命令提示符,跑个命令看看:

gcc --version

要是输出里有x86_64-w64-mingw32,说明是64位工具链;要是显示i686-w64-mingw32,那就是32位的,得回去调Path顺序。

补充一句:你笔记本能正常装,大概率是笔记本的环境变量里64位工具优先级更高,或者默认就没开多架构编译,照着上面的步骤调台式机的配置就行。

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

火山引擎 最新活动