Frage

Ich habe eine C ++ / RCPP Funktion die ich brauche, zu kompilieren und Link zu dem Pomp Paket Zugriff auf einen Zufallszahlengenerator zu erhalten. Ich kann die Header-Datei enthalten bekommen, aber, wie ich es zu Link zu dem kompilierten Code bekommen?

CppColonized<-cxxfunction(
  sig=signature(x="numeric", t="numeric", params="numeric", dt="numeric"),
  plugin='Rcpp',
  includes = sprintf("#include <Rmath.h>\n#include <math.h>\n#include\"%s\"", 
    base:::system.file("include/pomp.h",package="pomp")),
  body=Code,verbose=T)

Der Code verwendet die reulermultinom Funktion in dem Pomp Paket und wenn ich es beurteilen gibt es den Fehler

undefined reference to `reulermultinom (int, double, double *, double, double *)

Die Befehle ausgegeben werden, sind

g ++ -I "C: /PROGRA~1/R/R-211~1.1/include" -I "C: /PROGRA~1/R/R-211~1.1/library/Rcpp/include" -O2 -Wall -c file2f752742.cpp -o file2f752742.o g ++ -shared -s -static-libgcc -o file2f752742.dll tmp.def file2f752742.o C: /PROGRA~1/R/R-211~1.1/library/Rcpp/lib/libRcpp.a -LC: /PROGRA~1/R/R-211~1.1/bin -lR

Ist scheint, wie es sollte eine -lpomp oder etwas ähnliches sein.

War es hilfreich?

Lösung

Bitte beachten Sie die Dokumentation für cxxfunction() und getPlugin() in Paket inline .

Sie müssen fill in der richtigen -I ... und -L ... Fahnen. Der sprintf() Hack hilft für den Header, es ist nicht die Bibliothek Standort nicht geben.

Auch die gestrige Hinweis über die Verwendung von RCPP-devel noch hält. Sie haben drei hochwertige dort heute antwortet. also warum es nicht verwenden. Ich denke, wir Beispiele dafür haben auch in den Archiven der Mailinglisten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top