Ubuntu20.04下R4.1如何安装RcppOctave调用Octave?
Ubuntu 20.04 R4.1 环境安装RcppOctave解决方案
1. 清理无效配置
首先删除之前手动创建的octave/config.h软链接,避免后续编译冲突:
sudo rm -f /usr/include/octave/config.h
2. 定位Octave头文件路径
执行终端命令定位当前安装的Octave对应的头文件根路径:
find /usr/include -name "config.h" | grep octave
输出示例:/usr/include/octave-6.4.0/octave/config.h,记录路径前缀/usr/include/octave-6.4.0,后续步骤替换为你实际输出的对应路径。
3. 安装前置依赖
- 系统侧依赖(若未安装):
sudo apt install -y libxml2-dev libssl-dev libcurl4-openssl-dev build-essential
- R侧依赖:
打开R控制台执行命令,选择你常用的国内CRAN镜像即可:
install.packages(c("Rcpp", "pkgbuild", "devtools"))
4. 修改适配版源码
4.1 获取源码
获取RcppOctave 0.18.1版本的源码压缩包,该版本为官方最后发布的稳定归档版本,解压后进入源码目录。
4.2 修改编译配置文件
打开源码目录下src/Makevars文件,在文件开头添加以下内容,注意替换为你之前记录的Octave头文件前缀路径:
PKG_CPPFLAGS += -I<替换为你自己的Octave头文件前缀路径> PKG_LIBS += `octave-config --libs`
4.3 修复conversion.cpp编译错误
打开源码目录下src/conversion.cpp文件:
- 全局替换所有
is_string()为is_char_matrix() - 全局替换所有
string_value()为char_matrix_value().to_string()
修改完成后保存退出。
5. 编译安装
回到R控制台,执行以下命令安装修改后的本地源码包,替换尖括号内容为你实际的源码目录路径:
install.packages("<你的RcppOctave源码目录完整路径>", repos = NULL, type = "source")
6. 验证安装
安装完成后执行以下命令验证功能是否正常:
library(RcppOctave) o_version()
正常会输出你当前安装的Octave版本号,说明安装成功。
内容的提问来源于stack exchange,提问作者César Arquero Cabral
相关产品推荐
相关产品推荐

