knitr::opts_chunk$set(echo = TRUE)
  1. write function in C code
# save vignettes/mini.c
void useC(int *i){
  i[0] = 11;
}
  1. compile C code to dll
R CMD SHLIB vignettes/mini.c
C:/Rtools/mingw_64/bin/gcc  -I"C:/PROGRA~1/R/R-36~1.1/include" -DNDEBUG          -O2 -
Wall  -std=gnu99 -mtune=generic -c vignettes/mini.c -o vignettes/mini.o
C:/Rtools/mingw_64/bin/gcc -shared -s -static-libgcc -o vignettes/mini.dll tmp.def vig
nettes/mini.o -LC:/PROGRA~1/R/R-36~1.1/bin/x64 -lR
  1. load dll
dyn.load("vignettes/mini.dll")
  1. use it
a <- rep(2, 10) # integer vector
a
[1] 2 2 2 2 2 2 2 2 2 2
out <- .C("useC", b = as.integer(a))
out$b
[1] 11  2  2  2  2  2  2  2  2  2


XiangyunHuang/RcppML documentation built on Oct. 31, 2019, 1:16 a.m.