Hinzufügen einer externen Bibliothek in einem R-Paket mit Rcpp
Ich versuche, ein R-Paket zu entwickeln, das das @ verwende Sonnenuhren C Bibliothek zur Lösung von Differentialgleichungen. Damit der Benutzer die Bibliothek nicht installiert, füge ich den Quellcode der Bibliothek in mein Paket ein.
Ich habe alle Header-Dateien aus der Bibliothek in @ abgele/inst/include/sundials-2.6.2
und die.c
Dateien insrc/sundials-2.6.2
meines Paketordners.
Von meiner Lektüre der SO Beiträge zu diesem Thema,sourceCpp
des Codes in mehreren Dateien (z. B. separates.h
und.cpp
-Dateien sollten funktionieren, wenn sie als Teil des Pakets strukturiert sind. Ich versuche, eine Beispielcodedatei aus dem Sundials-Paket auszuführen.
Mein Code (nur der Anfangsteil) sieht ungefähr so aus wie
#include <Rcpp.h>
#include "../inst/include/sundials-2.6.2/cvode/cvode.h" /* prototypes for CVODE fcts., consts. */
#include "../inst/include/sundials-2.6.2/nvector/nvector_serial.h" /* serial N_Vector types, fcts., macros */
#include "../inst/include/sundials-2.6.2/cvode/cvode_dense.h" /* prototype for CVDense */
#include "../inst/include/sundials-2.6.2/sundials/sundials_dense.h" /* definitions DlsMat DENSE_ELEM */
#include "../inst/include/sundials-2.6.2/sundials/sundials_types.h" /* definition of type realtype */
Aber ich erhalte eine Fehlermeldung
fatal error: sundials/sundials_nvector.h: No such file or directory
Ich mache ein Beispiel für etwas Ähnliches in den folgenden Github-Repositories
Rcppsundials -https: //github.com/AleMorales/RcppSundials.R/blob/master/src/cvode.cp
, das die Header-Dateien mit @ aufru
#include <cvodes/cvodes.h> // CVODES functions and constants
#include <nvector/nvector_serial.h> // Serial N_Vector
#include <cvodes/cvodes_dense.h> // CVDense
und hat die Header-Dateien unter dem @ aufgenomm/inst/include/
Mappe
Dies ist das erste Paket, das ich zu entwickeln versuche, und ich habe C / C ++ auch nicht ausgiebig verwendet. Es könnte also etwas sehr Dummes sein, wenn ich versuche, dieses Programm zu kompilieren.
Nur eine Randnotiz - Ich konnte ein Beispiel auf meinem OSX-Computer installieren und ausführen, arbeite jedoch derzeit auf einem Windows-Computer, auf dem keine Sonnenuhren installiert sind. Es hatRtools
installiert, damit ich das Beispiel kompilieren und ausführen kannRcpp
Programme.
Danke SN