[Rcpp-devel] Problem with RInside "hello world" example
edd at debian.org
Tue May 22 22:11:29 CEST 2012
On 22 May 2012 at 12:51, Michael Hannon wrote:
| Dirk Eddelbuettel <edd at debian.org> wrote:
| > On 22 May 2012 at 01:04, Michael Hannon wrote:
| >| Darren Cook <darren at dcook.org> wrote:
| >| >> I've run into a problem with the RInside "hello world" > example. I can
| >| >> not get it to compile on my system. The first of the many error
| >| >> messages is:
| >| >>
| >| >> undefined reference to `RInside::RInside(int, char const* const*,
| >| >
| >| > You are not telling g++ where to find the R libraries that you need to
| >| > link with.
| >Correct -- the RInside package comes with four example directories.
| >And each of these four directories has a Makefile. The easiest to start with
| > examples/standard/Makefile
| >as you can simply drop in a new file 'myhelloworld.cpp' (or any other name
| >you choose) into this directory and say 'make myhelloworld' --- and the
| >binary 'myhelloworld' will be created for you.
| >It does this by querying R via Rscript to learn about
| > headers and libraries for R
| > headers and libraries for Rcpp
| > headers and libraries for RInside
| >and all six components are needed for compiling and linking.
| Hmm. Thanks, Dirk. That Makefile is downright spooky smart (and worth a
| study in its own right).
"make" as a language actually won the same ACM Software Systems Awards that
John Chambers won for R (and which Smalltalk, Tcl/Tk, Netscape/The Web,
... won too).
I have learned a few tricks over the years, but that Makefile is pretty
standard (apart from the the 'list all .cpp and derive basenames from it).
| I was unaware of the "RHOME" option for R and the
| "shell" function in GNU make. Given that I had only one *.cpp file in the
| directory, I got the binary to build simply by typing "make", but I did check
| that "make <filename>" also appears to work.
Yup. You need the latter to make the former (via implicit 'make all') work.
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel