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




