Я хотел бы написать функцию C++ с Rcpp, которая использует функциюC найдено в пакете hypred, который находится на CRAN here.Rcpp: Вызов функции C из пакета в Rcpp
Я читал using C function from other package in Rcpp, но не понимаю, применимо ли это для меня, и если это применимо, что делать.
Желаемая функция находится в исходном файле /src/hypredRoutines.c и называется meiosisFUNAllChr.
То, что я до сих пор так и на основе этого SO вопроса here является:
- Я отделил функцию meiosisFUNAllChr от остальной части коды и поместил его в новом файле с именем meiosisFUNAllChr.c.
Я создал файл заголовка с именем meiosisFUNAllChr.h содержащий:
#ifndef MEIOSISFUNALLCHR_H #define MEIOSISFUNALLCHR_H void meiosisFUNallChr (...); #endif
Составитель его
gcc -c -o meiosisFUNAllChr.o meiosisFUNAllChr.c
Создано фиктивной Си ++
#include <Rcpp.h> using namespace Rcpp; extern "C" { #include "meiosisFUNallChr.h" } // [[Rcpp::export]] int timesTwo(int x) { return x * 2; }
На этом этапе компиляция с sourceCpp не работает. Можете ли вы показать мне, как заставить его работать?
Большое спасибо!
EDIT
Компиляция с sourceCpp дает мне:
meiosisFUNallChr.h: file or directory not found
Я не эксперт в Rcpp, но я нашел RStudio очень полезным, так как он предоставляет шаблоны для него. Когда вы создаете проект, вы можете указать, что он использует Rcpp, и это упрощает многое. –
Я знаю эти возможности и уже использовал их, но я не знаю, как это поможет мне получить функцию C, работающую в моем коде :-) – NoBackingDown
вы пытались использовать 'sourceCpp'? –