当从终端而不是rstudio服务器运行R时,使用RcppArmadillo的代码会编译 我试图用SoCIECpp和RCPARMADILO来编译一些C++代码。我在Ubuntu上使用R3.3.3、RCPP0.12.10和RcppArmadillo 0.7.800.2.0。文件armatest.cpp已完全精简 // [[Rcpp::depends(RcppArmadillo)]] #include <RcppArmadillo.h> using namespace arma; using namespace Rcpp; int one() { return 1; } /[[Rcpp::depends(RcppArmadillo)]] #包括 使用arma; 使用名称空间Rcpp; int one(){ 返回1; }

当从终端而不是rstudio服务器运行R时,使用RcppArmadillo的代码会编译 我试图用SoCIECpp和RCPARMADILO来编译一些C++代码。我在Ubuntu上使用R3.3.3、RCPP0.12.10和RcppArmadillo 0.7.800.2.0。文件armatest.cpp已完全精简 // [[Rcpp::depends(RcppArmadillo)]] #include <RcppArmadillo.h> using namespace arma; using namespace Rcpp; int one() { return 1; } /[[Rcpp::depends(RcppArmadillo)]] #包括 使用arma; 使用名称空间Rcpp; int one(){ 返回1; },c++,r,rcpp,armadillo,rstudio-server,C++,R,Rcpp,Armadillo,Rstudio Server,当我试图从Rstudio服务器内编译此文件时,我得到以下编译错误: > Rcpp::sourceCpp("armatest.cpp", verbose = TRUE, rebuild=TRUE) Generated extern "C" functions -------------------------------------------------------- #include <Rcpp.h> Generated R functions ---------

当我试图从Rstudio服务器内编译此文件时,我得到以下编译错误:

> Rcpp::sourceCpp("armatest.cpp", verbose = TRUE, rebuild=TRUE)

Generated extern "C" functions 
--------------------------------------------------------


#include <Rcpp.h>

Generated R functions 
-------------------------------------------------------

`.sourceCpp_1_DLLInfo` <- dyn.load('/tmp/Rtmp3oSZra/sourceCpp-x86_64-pc-linux-gnu-0.12.10/sourcecpp_47d41ae4918/sourceCpp_10.so')


rm(`.sourceCpp_1_DLLInfo`)

Building shared library
--------------------------------------------------------

DIR: /tmp/Rtmp3oSZra/sourceCpp-x86_64-pc-linux-gnu-0.12.10/sourcecpp_47d41ae4918

/usr/lib/R/bin/R CMD SHLIB -o 'sourceCpp_10.so' --preclean  'armatest.cpp'  
g++ -I/usr/share/R/include -DNDEBUG    -I"/home/amercer/R/x86_64-pc-linux-gnu-library/3.3/Rcpp/include" -I"/home/amercer/R/x86_64-pc-linux-gnu-library/3.3/RcppArmadillo/include" -I"/home/amercer"   -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g  -c armatest.cpp -o armatest.o
g++ -shared -L/usr/lib/R/lib -Wl,-z,relro -o sourceCpp_10.so armatest.o -llapack -lblas -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
/usr/share/R/share/make/shlib.mk:6: recipe for target 'sourceCpp_10.so' failed
Error in Rcpp::sourceCpp("armatest.cpp", verbose = TRUE, rebuild = TRUE) : 
  Error 1 occurred building shared library.
Rcpp::sourceCpp(“armatest.cpp”,verbose=TRUE,rebuild=TRUE) 生成的外部“C”函数 -------------------------------------------------------- #包括 生成的R函数 ------------------------------------------------------- `.sourceCpp_1_DLLInfo`Rcpp::sourceCpp(“armatest.cpp”,verbose=TRUE,rebuild=TRUE) 生成的外部“C”函数 -------------------------------------------------------- #包括 生成的R函数 -------------------------------------------------------
`.sourceCpp_1_DLLInfo`可能是您的安装程序的本地设置,因为它在这里也可以从RStudio正常工作---但是请注意,我添加了一个
/[[Rcpp::export]]
以及一个自动执行的示例:

> Rcpp::sourceCpp("/tmp/armaQ.cpp")

> one()
[1] 1
> 
你的例子,稍作改动:

// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>

using namespace arma; 
using namespace Rcpp;

// [[Rcpp::export]]
int one() {
  return 1;
}

/*** R
one()
*/
/[[Rcpp::depends(RcppArmadillo)]]
#包括
使用arma;
使用名称空间Rcpp;
//[[Rcpp::导出]]
int one(){
返回1;
}
/***R
一()
*/
// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>

using namespace arma; 
using namespace Rcpp;

// [[Rcpp::export]]
int one() {
  return 1;
}

/*** R
one()
*/