tutorial - rcpp gallery
Rcpp Rcpp.package.skeleton("mypackage") "rcpp_hello_world" no está disponible para.Call() para el paquete "mypackage" (3)
Cuando encontré este problema, la solución fue eliminar PACKAGE = "mypackage"
de las llamadas a la función C [/ cpp]
es decir .Call( "rcpp_hello_world", PACKAGE = "mypackage")
convierte en .Call("rccp_hello_world")
Me las arreglé para hacer que Rcpp.package.skeleton
INSTALE en Windows mediante los siguientes comandos en el indicador de R:
Rcpp.package.skeleton("mypackage")
system("R CMD build mypackage")
system("R CMD INSTALL mypackage")
library(mypackage)
Esto crea el mypackage.dll
. Sin embargo, cuando hago los siguientes comandos -
rcpp_hello_world <- function(){ .Call( "rcpp_hello_world", PACKAGE = "mypackage")}
rcpp_hello_world()
Obtuve el siguiente error:
Error in .Call("rcpp_hello_world", PACKAGE = "mypackage") :
"rcpp_hello_world" not available for .Call() for package "mypackage"
sessionInfo()
y obtengo lo siguiente:
attached base packages:
[1] tools stats graphics grDevices utils datasets methods base
other attached packages:
[1] mypackage_1.0 inline_0.3.13 Rcpp_0.11.1
Indicando que mi nuevo paquete está ahí.
¿Hay otros controles que pueda hacer para ver qué está pasando? ¿Algunas ideas?
El paquete se prueba ampliamente antes de cada lanzamiento, incluso en Windows-builder usando Windows. Las pruebas de regresión incluso incluyen la construcción de un paquete de esta manera a través de una llamada a package.skeleton()
.
También es reconstruido por CRAN post-lanzamiento. Muchas personas lo usan.
Para todas esas personas, las pruebas son apropiadas y cuando no se puede usar por long long
, es #define
-d.
Ahora, insiste en construir de una manera no estándar: ninguna fuente que conozco recomienda llamar a R CMD INSTALL
través del system()
. Sospecho que simplemente tienes un contratiempo de $PATH
y encuentras otra versión incorrecta de g++
.
Sugeriría hacer lo que la documentación sugiere y ejecutar.
R CMD INSTALL mypackage*tar.gz
en un indicador de cmd.exe
.
FWIW, acabo de recibir un error similar al actualizar un paquete R-only existente con Rcpp, y el problema era que faltaba useDynLib(mypackage)
en NAMESPACE
.