I am trying to compile some C code (called rand_beta) in terminal which contains the lines to include R.h and Rmath.h header files using gcc -o rand_beta rand_beta.c
The other answers try to guess where your R installation directory is. But there is a more robust solution. Use the R.home
command in R
to find it wherever it is:
> R.home('include')
/usr/lib64/R/include
That is the folder containing R.h
and Rmath.h
on my system. Your folder may be in a different place.
You first need to locate those headers. In my system, they are located in /usr/lib64/R/include/R.h
, part of the R-devel
package I installed with yum
.
Then use the -I
option of gcc
to tell gcc
where to find them.
gcc -I/usr/lib64/R/include -o rand_beta rand_beta.c
Then, you will also most probably need to export LD_LIBRARY_PATH
to run your compiled program:
LD_LIBRARY_PATH=/usr/lib64/R/lib ./rand_beta
Another way is to specify some environment variables to directly use the include path:
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/
This should then run fine:
gcc -o rand_beta rand_beta.c