Linux下安装RcppArrayFire遇错:无法检测到ArrayFire安装
解决RcppArrayFire安装找不到ArrayFire的问题
方法1:使用configure.args指定正确参数
你之前传入的configure.args格式不符合要求,需要明确指定头文件和库文件的具体路径,而非直接传递ArrayFire的根目录。执行以下命令:
install.packages("RcppArrayFire", configure.args = c("--with-arrayfire-include=/home/enzo/Downloads/ArrayFire-3.9.0-Linux/include", "--with-arrayfire-lib=/home/enzo/Downloads/ArrayFire-3.9.0-Linux/lib64"))
注:若为32位系统,将lib64替换为lib即可。
方法2:设置环境变量后安装
先在终端配置环境变量,再启动R执行安装:
- 终端执行:
export ArrayFire_INCLUDE_DIR=/home/enzo/Downloads/ArrayFire-3.9.0-Linux/include export ArrayFire_LIBRARY_DIR=/home/enzo/Downloads/ArrayFire-3.9.0-Linux/lib64
- 启动R,执行:
install.packages("RcppArrayFire")
方法3:从GitHub源码编译安装
若前两种方法无效,可直接从项目源码编译:
devtools::install_github("daqana/rcpparrayfire", args = c("--with-arrayfire-include=/home/enzo/Downloads/ArrayFire-3.9.0-Linux/include", "--with-arrayfire-lib=/home/enzo/Downloads/ArrayFire-3.9.0-Linux/lib64"))
注:需先安装devtools包:install.packages("devtools")
额外检查项
- 确认ArrayFire的
lib/lib64目录下存在libaf.so、libafcpu.so等库文件,include目录下有arrayfire.h等头文件。 - 若为Ubuntu/Debian系统,可尝试将ArrayFire的库目录添加到系统库路径:
sudo ldconfig /home/enzo/Downloads/ArrayFire-3.9.0-Linux/lib64
内容的提问来源于stack exchange,提问作者E_1996
相关产品推荐
相关产品推荐

