Этот код хорошо работает на R с RcppОшибка кода Rcpp?
cppFunction('
double getMean (NumericVector x) {
int n = x.length() ;
double mn = 0.0 ;
for (int it = 0 ; it < n ; it++) {
mn += x(it)/n ;
}
return(mn) ;
}
')
но добавив только еще одну линию выдает ошибку. Это просто простой код, чтобы попробовать Rcpp, чтобы узнать. Я вставил большую часть кода в цикл.
cppFunction('
double getMean (NumericVector x) {
for (int jt = 0 ; jt < 100000 ; jt++) {
int n = x.length() ;
double mn = 0.0 ;
for (int it = 0 ; it < n ; it++) {
mn += x(it)/n ;
} }
return(mn) ;
}
')
g++ -m64 -I"F:/Soft/R/R-31~1.1/include" -DNDEBUG -I"F:/Soft/R/R-3.1.1/library/Rcpp/include" -O2 -Wall -mtune=core2 -c file65c22223500.cpp -o file65c22223500.o
file65c22223500.cpp: In function 'double getMean(Rcpp::NumericVector)':
file65c22223500.cpp:14:8: error: 'mn' was not declared in this scope
return(mn) ;
^
file65c22223500.cpp:15:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
make: *** [file65c22223500.o] Error 1
error message lost executed command 'make -f "F:/Soft/R/R-31~1.1
/etc/x64/Makeconf" -f "F:/Soft/R/R-31~1.1/share/make/winshlib.mk"
SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)'
SHLIB="sourceCpp_30227.dll" WIN=64 TCLBIN=64 OBJECTS="file65c22223500.o"' has 2 status error in sourceCpp(code = code, env = env, rebuild = rebuild, showOutput = showOutput, :
Error 1 occurred building shared library.
В чем проблема?