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

R v4.3.2安装RcppArrayFire包失败求助:configure脚本配置问题

在R v4.3.2中安装RcppArrayFire包的问题

RcppArrayFire是一款用于导入ArrayFire库的R包,ArrayFire是支持CPU/Cuda/OpenCL后端的C/C++并行计算封装库。由于R没有原生或同类第三方库替代,我需要在较新版本的R v4.3.2中安装这款2019年开发的包。

软件配置

  • 已安装R v4.3.2及Rtools 43,devtools、Rcpp、drat包可正常使用
  • 已安装ArrayFire v3.6.1并配置好系统环境变量,可正常运行
  • 操作系统:Windows 7 SP1(因软件依赖无法升级)

尝试的安装步骤及错误

按照RcppArrayFire的仓库提供的方法,加载devtools、Rcpp、drat库后执行以下命令:

drat::addRepo("daqana")
install.packages("RcppArrayFire")

执行后出现如下错误:

Warning: unable to access index for repository https://daqana.github.io/drat/bin/windows/contrib/4.3:
  cannot open URL 'https://daqana.github.io/drat/bin/windows/contrib/4.3/PACKAGES'
Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘RcppArrayFire’
installing the source package ‘RcppArrayFire’

trying URL 'https://daqana.github.io/drat/src/contrib/RcppArrayFire_0.1.0.tar.gz'
Content type 'application/gzip' length 62912 bytes (61 KB)
downloaded 61 KB

* installing *source* package 'RcppArrayFire' ...
** using staged installation

   **********************************************
   WARNING: this package has a configure script
         It probably needs manual configuration
   **********************************************


** libs
using C++ compiler: 'G__~1.EXE (GCC) 12.3.0'
using C++11
g++  -std=gnu++11 -I"C:/R/R-43~1.2/include" -DNDEBUG  -I'C:/R/R-4.3.2/library/Rcpp/include'   -I"C:/Rtools43/x86_64-w64-mingw32.static.posix/include"     -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign  -c RcppArrayFire.cpp -o RcppArrayFire.o
RcppArrayFire.cpp:23:10: fatal error: RcppArrayFire.h: No such file or directory
   23 | #include <RcppArrayFire.h>
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [C:/R/R-43~1.2/etc/x64/Makeconf:272: RcppArrayFire.o] Error 1
ERROR: compilation failed for package 'RcppArrayFire'
* removing 'C:/R/R-4.3.2/library/RcppArrayFire'

The downloaded source packages are in
        ‘C:\Users\User\AppData\Local\Temp\RtmpUtJFAZ\downloaded_packages’
Warning message:
In install.packages("RcppArrayFire") :
  installation of package ‘RcppArrayFire’ had non-zero exit status

核心错误是g++编译器无法找到RcppArrayFire.h头文件,已确认源码压缩包中CPP文件位于src文件夹,头文件位于include文件夹。

已尝试的解决方法

  1. 手动修改头文件路径:修改CPP文件中的#include行,添加头文件绝对路径,但需要修改RcppArrayFire及ArrayFire相关的数十处引用,后续编译仍出现大量类型导出错误。
  2. 指定ArrayFire路径:按照仓库说明执行命令:
    install.packages("RcppArrayFire", configure.args = "--with-arrayfire=/opt/arrayfire")
    
    无效后换成Windows下的路径--with-arrayfire=C:/Program Files/ArrayFire/v3/,问题依旧。
  3. 本地源码安装:将源码解压到C:\R\R local repository src\RcppArrayFire,执行以下命令:
    install("C:/R/R local repository src/RcppArrayFire")
    # 或指定ArrayFire路径
    install("C:/R/R local repository src/RcppArrayFire", configure.args = "--with-arrayfire=C:/Program Files/ArrayFire/v3/")
    
    仍未成功。

求助需求

请指出我操作中的错误或遗漏的解决步骤,尤其是如何正确配置包中的configure脚本,避免手动修改源码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:14:56