[Rd] R CMD check: Error in .C

Etienne Laliberté etiennelaliberte at gmail.com
Mon Oct 26 03:58:27 CET 2009


Function/file names are hypothetical. Say I have written myfunction.R,
which calls myfunction.c via .C("myfunction", ...).

I've compiled successfully myfunction.c via R CMD SHLIB myfunction.c
in the terminal. Then, in the R console:

dyn.load("myfunction.so")
source("myfunction.R")
test <- myfunction() # works fine

So everything is in order, myfunction works perfectly.

Now I want to include myfunction() into a package called mypackage.
Here's what I did:

1) I've added PACKAGE = "mypackage" in the .C() line in myfunction.R.
2) I put myfunction.R into the R folder of mypackage
3) I put myfunction.c into the src folder of mypackage
4) I created myfunction.Rd into the man folder

I then build the package via R CMD build mypackage. All good. However,
when I run R CMD check mypackage, I get the following error (note that
I translated from french, might be a bit different in english):

Error in .C("myfunction", ...): C symbol name "myfunction" cannot be
found in the DLL for package "mypackage"

I would appreciate some help here. Please do not refer my to "Writing
R extensions" - if the answer's in there, I don't understand it.

Many thanks.

--
Etienne Laliberté
================================
Rural Ecology Research Group
School of Forestry
University of Canterbury
Private Bag 4800
Christchurch 8140, New Zealand
Phone: +64 3 366 7001 ext. 8365
Fax: +64 3 364 2124
www.elaliberte.info



More information about the R-devel mailing list