Mover-se de sourceCpp para um pacote com Rcpp

Atualmente tenho um.cpp arquivo que eu posso compilar usandosourceCpp(). Como esperado, a função R correspondente é criada e o código funciona conforme o esperado.

Aqui está:

#include <Rcpp.h> 
using namespace Rcpp;

// [[Rcpp::export]]
NumericVector exampleOne(NumericVector vectorOne, NumericVector vectorTwo){

    NumericVector outputVector = vectorOne + vectorTwo; 

    return outputVector;
}

Agora estou convertendo meu projeto para um pacote usandoRcpp. Então, criei o esqueleto com o rStudio e comecei a analisar como converter as coisas.

Em Hadley'sexcelente primer no Cpp, ele diz na seção "Usando o Rcpp em um pacote":

Se seus pacotes usarem o atributo Rcpp :: export, será necessário executar uma etapa adicional no processo de compilação do pacote. A função compileAttributes examina os arquivos de origem em um pacote para os atributos Rcpp :: export e gera o código necessário para exportar as funções para R.

Você deve executar novamente os compileAttributes sempre que as funções forem adicionadas, removidas ou suas assinaturas forem alteradas. Observe que, se você construir seu pacote usando o RStudio ou devtools, essa etapa ocorrerá automaticamente.

Então parece que o código compilado comsourceCpp() deve funcionar praticamente como em um pacote.

Eu criei o arquivo R correspondente.

exampleOne <- function(vectorOne, vectorTwo){
    outToR <- .Call("exampleOne", vectorOne, vectorTwo, PACKAGE ="testPackage")
    outToR
}

Então eu (re) construí o pacote e recebo este erro:

Error in .Call("exampleOne", vectorOne, vectorTwo, PACKAGE = "voteR") : C symbol name "exampleOne" not in DLL for package "testPackage"

Alguém tem uma idéia do que mais eu preciso fazer ao tomar código que compila com sourceCpp () e depois usá-lo em um pacote?

Devo observar que li: "Escrevendo um pacote que usa Rcpp"http://cran.rstudio.com/web/packages/Rcpp/vignettes/Rcpp-package.pdf e entender a estrutura básica apresentada lá. No entanto, depois de olhar para oRcppExamples código-fonte, parece que a estrutura nas vinhetas não é exatamente a mesma usada no pacote de exemplo. Por exemplo, não há arquivos .h usados. Além disso, nem a vinheta nem o código-fonte usam o atributo [[Rcpp :: export]]. Isso tudo dificulta rastrear exatamente onde está o meu erro.

questionAnswers(3)

yourAnswerToTheQuestion