gpt4 book ai didi

r - 如何避免 "cannot find -lR"在 Windows 上安装 R 包

转载 作者:行者123 更新时间:2023-12-03 11:04:32 25 4
gpt4 key购买 nike

我想从源安装软件包:

设置环境变量:

Sys.setenv(BINPREF = "C:/PROGRA~1/R/Rtools/mingw_64/bin/")
Sys.setenv(BINPREF64 = "C:/PROGRA~1/R/Rtools/mingw_64/bin/")
Sys.setenv(PATH = "C:/PROGRA~1/R/R-3.4.2/bin/x64/;C:/PROGRA~1/R/Rtools/bin/;C:/PROGRA~1/R/Rtools/mingw_64/bin/")

从源代码安装任何软件包都会导致“找不到 -lR”错误:
install.packages("later")

错误信息:
C:/PROGRA~1/R/Rtools/mingw_64/bin/g++ -shared -s -static-libgcc -o
later.dll tmp.def RcppExports.o callback_registry.o debug.o init.o
later.o later_posix.o later_win32.o timer_posix.o timestamp_unix.o
timestamp_win32.o tinycthread.o
-Ld:/Compiler/gcc-4.9.3/local330/lib/i386 -Ld:/Compiler/gcc-4.9.3/local330/lib -LC:/PROGRA~1/R/R-34~1.2/bin/i386 -lR C:/PROGRA~1/R/Rtools/mingw_64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.3/../../../../x86_64-w64-mingw32/bin/ld.exe:
skipping incompatible C:/PROGRA~1/R/R-34~1.2/bin/i386/R.dll when searching for -lR
C:/PROGRA~1/R/Rtools/mingw_64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.3/../../../../x86_64-w64-mingw32/bin/ld.exe:
skipping incompatible C:/PROGRA~1/R/R-34~1.2/bin/i386/R.dll when searching for -lR
C:/PROGRA~1/R/Rtools/mingw_64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.3/../../../../x86_64-w64-mingw32/bin/ld.exe:
cannot find -lR collect2.exe: error: ld returned 1 exit status no DLL
was created
ERROR: compilation failed for package 'later'

如此处所示: https://community.rstudio.com/t/installing-source-package-failure-to-link/14775可能是由于某种原因在我的 64 位机器上链接了一个 32 位文件。但我没有在我的路径中看到任何错误。
(过去,从源代码安装运行良好)。
Sys.info()
sysname release version nodename machine login user effective_user
"Windows" "Server >= 2012 x64" "build 9200" "YY" "x86-64" "XX" "XX" "XX"

session 信息:
Version:1.0 StartHTML:0000000107 EndHTML:0000001240 StartFragment:0000000127 EndFragment:0000001222
sessionInfo() R version 3.4.2 (2017-09-28) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows Server >= 2012 x64 (build 9200)

工作室 1.1.383

也张贴在这里: https://community.rstudio.com/t/how-to-avoid-cannot-find-lr-for-r-package-installation-on-windows/49425 .

有关的:
  • https://support.bioconductor.org/p/11509/ (但我的 sessionInfo 没有指向任何 Linux 版本)。
  • 最佳答案

    你犯了三个错误:

  • 你不应该在 program files 下安装 rtools或任何其他带有空格的路径。
  • 您正在使用 BINPREF错误,导致在 32 位上使用 64 位工具链。
  • mingw gcc 目录应该 不是 在 PATH 上。只有bin dir( bashmake )应该是。

  • 推荐设置:

    强烈推荐 在默认位置安装 rtools C:\Rtools\ .这是唯一经过广泛测试的配置。

    在这种情况下,您只需要 make put C:\Rtools\bin位于 PATH 上以便编译包。 R 将自动在 32 位和 64 位上使用正确的编译器。

    使用非默认 Rtools 位置:

    如果您确实必须在非标准位置安装 rtools,您可以设置 BINPREF到包含 $(WIN) 的模式被扩展到正确的路径,例如像这样:
    Sys.setenv(BINPREF="C:/YourRtoolsPath/mingw_$(WIN)/bin/")

    make调用编译器, $(WIN)32 取代或 64然后应该解析到相应工具链的正确路径。

    关于r - 如何避免 "cannot find -lR"在 Windows 上安装 R 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59720177/

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