我正在尝试在终端中编译一些C代码(称为rand_beta),其中包含使用gcc -o rand_beta rand_beta.c
包含R.h和Rmath.h头文件的行,以便我可以从R中调用代码。
但是,我收到错误消息:
rand_beta.c:1:15: error: R.h: No such file or directory
rand_beta.c:2:19: error: Rmath.h: No such file or directory
似乎这些应该与R一起安装的头文件不在我的系统上。
有人可以指导我如何让计算机找到R头文件吗?我需要从某个地方下载它们吗?
答案 0 :(得分:7)
首先需要找到这些标题。在我的系统中,它们位于我/usr/lib64/R/include/R.h
安装的R-devel
包的yum
部分。
然后使用-I
的{{1}}选项告诉gcc
在哪里找到它们。
gcc
然后,您也很可能需要导出gcc -I/usr/lib64/R/include -o rand_beta rand_beta.c
来运行已编译的程序:
LD_LIBRARY_PATH
答案 1 :(得分:6)
其他答案会尝试猜测R安装目录的位置。但是有一个更强大的解决方案。使用 R.home
中的R
命令在任何地方找到它:
> R.home('include')
/usr/lib64/R/include
这是我系统中包含R.h
和Rmath.h
的文件夹。您的文件夹可能位于不同的位置。
答案 2 :(得分:1)
另一种方法是指定一些环境变量来直接使用包含路径:
export CPATH=/usr/lib64/R/include/
export C_INCLUDE_PATH=/usr/lib64/R/include/
export CPLUS_INCLUDE_PATH=/usr/lib64/R/include/
export GCC_INCLUDE_DIR=/usr/lib64/R/include/
这应该运行良好:
gcc -o rand_beta rand_beta.c