سؤال
لدي وظيفة 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. حصلت على ثلاث ردود عالية الجودة هناك اليوم. لماذا لا نستعمله اذا. أعتقد أن لدينا أمثلة لهذا في أرشيف القائمة البريدية أيضًا.