Nothing
knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) knitr::knit_engines$set(callme = callme:::callme_engine) library(callme)
```{css, echo=FALSE} .callme { background-color: #E3F2FD; } pre.callme span { background-color: #E3F2FD; }
## Introduction When linking to a third party library it will often be necessary to explicitly specify a number of things: * `#include` the header file in the C code * Use `PKG_CPPFLAGS` to nominate the search path for where the header file may be found (`-I` flag) * Use `PKG_LIBS` to specify * Additional search paths for libraries (`-L` flag) * which libraries to link to (`-l` flag) ## Example: Linking to `zlib` ```{callme} #| PKG_LIBS = "-lz" #include <R.h> #include <Rinternals.h> #include "zlib.h" SEXP get_zlib_version(void) { // const char * ZEXPORT zlibVersion(void); return mkString(zlibVersion()); }
# Compile the code with explicit link to library compile(code, PKG_LIBS = "-lz")
# Call the function get_zlib_version()
# include a search path for the library compile(code, PKG_LIBS = "-L/local/libs -lz") # Include a search path for the header compile(code, PKG_LIBS = "-lz", PKG_CPPFLAGS = "-I/usr/local/include") # Link to a drop-in replacement compile(code, PKG_LIBS = "-lzlibng") # Use "pkg-config" to automatically determine appropriate flags compile(code, PKG_LIBS = "`pkg-config --libs zlib`", PKG_CPPFLAGS = "`pkg-config --cflags zlib`")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.