سؤال

لدي وظيفة C ++/RCPP التي أحتاجها إلى ترجمة وربط حزمة POMP للوصول إلى مولد أرقام عشوائية. يمكنني تضمين ملف الرأس ولكن كيفية الحصول عليه للربط بالرمز المترجم؟

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)

يستخدم الرمز وظيفة reuulermultinom في حزمة POM

إشارة غير محددة إلى `reulermultinom (int ، مزدوجة ، مزدوجة ، مزدوجة ، مزدوجة*)

الأوامر التي يتم إصدارها

g ++ -i "c: /progra~1/r/211~1.1/include" -i "c: /progra~1/r/211~1.1/library/rcpp/include" -o2 -wall - c file2f752742.cpp -o file2f752742 librcpp.a -lc: /progra~1/r/211~1.1/bin -lr

يبدو أنه يجب أن يكون هناك مركبة أو شيء من هذا القبيل.

هل كانت مفيدة؟

المحلول

يرجى الاطلاع على الوثائق cxxfunction() و getPlugin() في الحزمة في النسق.

تحتاج إلى ملء -أنا ... و -l ... أعلام. ال sprintf() Hack يساعد على الرأس ، فهو لا يمنحك موقع المكتبة.

أيضا ، لا يزال تلميح الأمس حول استخدام RCPP-Devel. حصلت على ثلاث ردود عالية الجودة هناك اليوم. لماذا لا نستعمله اذا. أعتقد أن لدينا أمثلة لهذا في أرشيف القائمة البريدية أيضًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top