[Rcpp-devel] How to link a .lib file in a rcpp-package in a Windows environment?

Dirk Eddelbuettel edd at debian.org
Tue Apr 26 18:24:02 CEST 2011

Hi Bernhard,

On 26 April 2011 at 17:55, Bernhard Pollner wrote:
| Am 25.04.2011 um 04:54 schrieb Dirk Eddelbuettel:
|     You need to include headers for R too, e.g.
|      #include <R.h>
|      #include <Rdefines.h>
|     and maybe
|      #include <Rinternals.h>
| That worked, everything runs smoothly then. :-)

Yup, good!

|     ## This assumes that the LIB_GSL variable points to working GSL libraries
|     ## It also assume that we can call Rscript to ask Rcpp about its locations
|     PKG_CPPFLAGS=-std=c++0x -I$(LIB_GSL)/include
|     PKG_LIBS=-L$(LIB_GSL)/lib -lgsl -lgslcblas $(shell $(R_HOME)/bin/
|     Rscript.exe -e "Rcpp:::LdFlags()")
|     but understand that the environment variable use here is 'just for CRAN'
|     and
|     you do not have to worry about it.
|     You do need to understand what these two lines do though, which is why I
|     recommended that you start with something simple.
| :-) Success!!
| I studied, found out what most of that means, and -- voila --  in the end the
| (very simple!!  :-)) )  working version of Makevars.win is like that:
| PKG_LIBS = Plastic.lib $(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" -e "Rcpp:::LdFlags()")

Perfect!!  No transformation needed for Plastic.lib, ie no export table
business and all that as discussed in the MinGW FAQ?

In that case maybe I should mention this use case in the Rcpp-FAQ....

| with Plastic.lib, which resides directly in src, being the library I wanted to
| link against.
| It works, I can invoke the first simple functions from within R, I can
| enumerate the connected devices, clear the list and give back build-numbers and
| the like.
| (But I fear the next questions are already forming on the horizon..... :-( )

We'll take it one step at a time. Just how you were able to decompose this
problem into manageable chunks, we'll just do the same with the next apparent roadblock.

| Thank you very much for your help here,

Always a pleasure.

Cheers, Dirk

Gauss once played himself in a zero-sum game and won $50.
                      -- #11 at http://www.gaussfacts.com

More information about the Rcpp-devel mailing list