我有一个 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)
该代码使用 pomp 包中的 reulermultinom 函数,当我评估它时,它给出了错误
对 `reulermultinom(int, double, double*, double, double*) 的未定义引用
发出的命令是
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
似乎应该有一个 -lpomp 或类似的东西。