# COMPILE

0th

Percentile

##### Compile Files for Use with R

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.

Keywords
utilities
##### Usage
R CMD COMPILE [options] srcfiles
##### Arguments
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.

options

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

##### Details

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.

Ratfor is not supported. If you have Ratfor source code, you need to convert it to FORTRAN. (On some Solaris systems mixing Ratfor and FORTRAN code will work.)

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.

##### Note

Some binary distributions of R have COMPILE in a separate bundle, e.g.an R-devel RPM.

This is not available on Windows.

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).