对RcppArmadillo的未定义引用

对RcppArmadillo的未定义引用,r,gcc,rcpp,R,Gcc,Rcpp,我是Rcpp的新手。我正在寻求以下问题的帮助。看来RcppArmadillo不起作用。有人能给我一些建议吗? 非常感谢 g++-m64-I“D:/R/R-32~1.5/include“-DNDEBUG-I”D:/R/R-3.2.5/library/Rcpp/include“-I”D:/R/R-3.2.5/library/RcppArmadillo/include“-I”D:/R/R-3.2.5/library/RcppProgress/include“--I”D:/R/Rcode/Replica

我是Rcpp的新手。我正在寻求以下问题的帮助。看来RcppArmadillo不起作用。有人能给我一些建议吗? 非常感谢

g++-m64-I“D:/R/R-32~1.5/include“-DNDEBUG-I”D:/R/R-3.2.5/library/Rcpp/include“-I”D:/R/R-3.2.5/library/RcppArmadillo/include“-I”D:/R/R-3.2.5/library/RcppProgress/include“--I”D:/R/Rcode/Replicating/src“--I”D:/R/Rcode/Replicating/inst/include“-/include“--I”D:/R/rcomfile/R-compile/R-compiling/R-compiling/R-comp-O2-壁-mtune=core2-c测试.cpp-o测试.o

在D:/R/R-3.2.5/library/RcppProgress/include/progress.hpp:13:0中包含的文件中, 来自测试。cpp:7: D:/R/R-3.2.5/library/RcppProgress/include/interruptable_progress_monitor.hpp:101:0:警告:忽略35; pragma omp critical[-Wunknown pragmas]

D:/R/R-3.2.5/library/RcppProgress/include/interruptable_progress_monitor.hpp:147:0:警告:忽略#pragma omp原子[-Wunknown pragmas]

D:/R/R-3.2.5/library/RcppProgress/include/interruptable_progress_monitor.hpp:153:0:警告:忽略#pragma omp critical[-Wunknown pragmas]

g++-m64-shared-s-static libgcc-o sourceCpp_7.dll tmp.def test.o-LD:/R/R-32~1.5/bin/x64-lRlapack-LD:/R/R-32~1.5/bin/x64-lRblas-lgfortran-LD:/R-compile/R-compile/local/local323/lib/x64-LD:/R-compile/R-compile/local/local/local/323/lib-LD:/R/R-32~1.5/bin/x64-lR

test.o:test.cpp:(.text+0x61ee): 对“mvrnorma(arma::Col,arma::Mat,int)”的未定义引用

test.o:test.cpp:(.text+0x6d0e):对“mvrnorma(arma::Col,arma::Mat,int)”的未定义引用

collect2:ld返回了1个退出状态


这看起来像是一个常见而明显的错误,忘记了更新
src/Makevars
,这里是
src/Makevars.win

PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) 
这样就有了所需的LAPACK和BLAS功能


值得一提的是,如果您选择从通常推荐的
RcppArmadillo.package.skeleton()
开始,这也会自动添加。

当然,您肯定需要包含代码,但我猜您没有将
/[[Rcpp::dependens(RcppArmadillo)]]
在源文件中。@nrussell:这是一个链接错误,不是编译错误。请看下面我的答案。谢谢你的完美答案。对不起,我犯了个愚蠢的错误,应该改为
src/Makevars