Использование заголовочных файлов (.h) с файлами cpp в пакете R с Rcpp

Возможный дубликат:
Использование сторонних заголовочных файлов с Rcpp

Примечание. Это продолжение обсуждения, начатого здесь:
Использование сторонних заголовочных файлов с Rcpp. Тем не менее, вопрос достаточно отличается, так что я подумал, что поставлю его как свой собственный вопрос.

У меня есть файл заголовка coolStuff.h которая содержит функцию awesomeSauce(arg1) что я хотел бы вызвать в файлах cpp, которые находятся в моем пакете R.

Структура пакета:

  • имя пакета

    • ОПИСАНИЕ
    • [человек]
    • NAMESPACE

    • р
      • someRscript.R
    • ЦСИ
      • theCppFile.cpp
      • otherCppFile.cpp

Код для CppFile.cpp:

`#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
double someFunctionCpp(double someInput){

double someOutput = awesomeSauce(someInput);

return someOutput;`

1) Где я должен разместить coolStuff.h в структуре каталогов пакетов, чтобы при сборке пакета и компиляции файлов cpp был включен код из coolStuff.h.

2) Как мне вызвать этот файл в coolStuff.h?

3) Точно так же, если я хочу позвонить otherCppFile.cpp в theCppFile.cpp где делать

В очередной раз благодарим за помощь. Я многому научился из последнего разговора. Если где-то есть стандартная документация, я буду рад RTFM, просто укажите мне правильное направление.

4

Решение

Там это целая виньетка, посвященная созданию пакета с помощью Rcpp и да, вы должны посмотреть на это.

Атрибуты Rcpp действительно хороши для быстрых и простых вещей, но даже они полагаются на пакеты: вы не можете делать их Зависит от: скажем, RcppArmadillo, если бы не встроенный плагин, предоставляемый пакетом RcppArmadillo.

Итак, вкратце: да, прочитайте хорошее руководство и / или посмотрите (в настоящее время) 95 пакетов на CRAN, которые используют Rcpp и зависит от него.

Редактировать: Здесь возможен один короткий путь: если coolStuff.h это просто заголовок (поэтому нет ссылок на внешние библиотеки), который вы можете получить, используя его в той же директории, что и ваш источник. Это помогает быстро sourceCpp() исследование. Но к пакет вам все еще нужно сделать дополнительные шаги, но даже некоторые из них были автоматизированы — см. виньетку атрибутов Rcpp.

Редактировать 2Я просто перечитал ваш предыдущий вопрос. это новый вопрос не имеет смысла и ничего не добавляет. Вы прочитали и поняли, что мы говорили вам в прошлый раз?

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]