【发布时间】:2014-04-29 20:38:41
【问题描述】:
我有一个 cpp 文件,我正在尝试使用 RStudio 中的 sourceCpp() 进行编译。它包括 Rcpp.h、所有必要的 STL 内容和“使用命名空间 Rcpp;”。
然后它有几个函数声明(不导出到 R),应该导出到 R 的函数,最后是声明函数的定义。
这是我尝试编译时得到的:
g++ -m32 -I"C:/PROGRA~1/R/R-30~1.2/include" -DNDEBUG -I"C:/Users/Michelle/Documents/R/win-library/3.0/Rcpp/include" -I"d:/RCompile/CRANpkg/extralibs64/local/include" -O2 -Wall -mtune=core2 -c RW_FastSwap.cpp -o RW_FastSwap.o
RW_FastSwap.cpp: In function 'SEXPREC* sourceCpp_27691_fastswap(SEXP, SEXP, SEXP, SEXP, SEXP)':
RW_FastSwap.cpp:459:9: error: '__result' was not declared in this scope
make: *** [RW_FastSwap.o] Error 1
Error in Rcpp::sourceCpp("C:/Users/Michelle/Desktop/Google Drive/FastSwap/RW_FastSwap.cpp") :
Error 1 occurred building shared library.
该行号比cpp文件的最后一行多15行,即cpp文件的最后一行是444。我确保从导出函数返回的结果类型与返回类型匹配的功能。
任何有关解决此问题的指导将不胜感激。
【问题讨论】:
-
文件保存了吗?如果您删除
.o文件并重试,会发生什么情况? -
如何删除那个 .o 文件?
-
什么版本的 Rcpp?生成的实际源文件是什么——你能发布
sourceCpp(..., verbose=TRUE)的输出吗?