utils (version 3.6.2)

COMPILE: Compile Files for Use with R on Unix-alikes


Compile given source files so that they can subsequently be collected into a shared object using R CMD SHLIB or an executable program using R CMD LINK. Not available on Windows.


R CMD COMPILE [options] srcfiles



A list of the names of source files to be compiled. Currently, C, C++, Objective C, Objective C++ and Fortran are supported; the corresponding files should have the extensions .c, .cc (or .cpp), .m, .mm (or .M), .f and .f90 or .f95, respectively.


A list of compile-relevant settings, or for obtaining information about usage and version of the utility.


R CMD SHLIB can both compile and link files into a shared object: since it knows what run-time libraries are needed when passed C++, Fortran and Objective C(++) sources, passing source files to R CMD SHLIB is more reliable.

Objective C and Objective C++ support is optional and will work only if the corresponding compilers were available at R configure time: their main usage is on macOS.

Compilation arranges to include the paths to the R public C/C++ headers.

As this compiles code suitable for incorporation into a shared object, it generates PIC code: that might occasionally be undesirable for the main code of an executable program.

This is a make-based facility, so will not compile a source file if a newer corresponding .o file is present.

See Also

LINK, SHLIB, dyn.load; the section on “Customizing compilation under Unix” in “R Administration and Installation” (see the doc/manual subdirectory of the R source tree).