gpt4 book ai didi

R 使用 mingw_32 为 64 位架构编译包

转载 作者:行者123 更新时间:2023-12-02 04:29:53 24 4
gpt4 key购买 nike

定期——我想每当我更新 R——我在我的 64 位 Windows 机器上从源代码安装包时遇到问题。

今天我正在尝试使用 devtools::install_github() 安装一个包.安装在我的笔记本电脑上进行得很好,但我的台式机上没有,它可以在 *** arch - i386 下安装软件包。 , 但在 *** arch - x64 之下, 报告错误信息

C:/PROGRA~1/R/R-34~1.4/bin/x64/R.dll: file not recognized: File format not recognized



导致错误的命令是
C:/Rtools/mingw_32/bin/g++ -shared -s -static-libgcc -o PACKAGENAME.dll [...]

我相信错误是因为 R 正在使用 mingw_32 来尝试编译 64 位包。问题是,我在哪里可以告诉 R 使用 mingw_64?我已经检查了所有我能记得的地方:
  • R-3.4.4/etc/x64/Makeconf状态BINPREF ?= c:/Rtools/mingw_64/bin/
  • 我的系统 PATH (在 R 中使用 Sys.getenv('PATH') 验证)在 mingw_32 之前包括 mingw_64。

  • R 必须寻找其他地方来决定使用哪个编译器......但在哪里?

    最佳答案

    通过 R CMD check not looking for gcc in Rtools directory :

    R 正在寻找 C:/Users/MYUSERNAME/Documents/.R/Makevars对于 BINPREF 的值.删除此文件的内容删除了不正确的位置。
    $RPATH/etc/i386/Makeconf每次新安装 R 时都会重新创建,并包含以下行BINPREF ?= c:/Rtools/mingw_32/bin/ .?=运算符将设置 BINPREF 的值如果它尚未设置,就像在 Makevars 中一样上面提到的文件。所以更换 ?==将一直工作,直到安装了新版本的 R 并且 Makeconf文件被覆盖 - 更新或卸载,R 不会修改 Makevars用户目录下的文件。

    关于R 使用 mingw_32 为 64 位架构编译包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49895448/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com