Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rcpp模块在Rcpp 0.12.11中不工作_R_Rcpp - Fatal编程技术网

Rcpp模块在Rcpp 0.12.11中不工作

Rcpp模块在Rcpp 0.12.11中不工作,r,rcpp,R,Rcpp,在使用停止工作的模块更新Rcpp my code后,我可以通过尝试安装通过Rcpp::Rcpp.package.skeleton(“foo”,module=TRUE)创建的测试包来重现这一点 结果如下: $ Rscript -e "Rcpp::Rcpp.package.skeleton('foo', module = TRUE)" Creating directories ... ... $ R CMD INSTALL foo * installing to library ‘/home/SMA

在使用停止工作的模块更新Rcpp my code后,我可以通过尝试安装通过
Rcpp::Rcpp.package.skeleton(“foo”,module=TRUE)
创建的测试包来重现这一点

结果如下:

$ Rscript -e "Rcpp::Rcpp.package.skeleton('foo', module = TRUE)"
Creating directories ...
...
$ R CMD INSTALL foo
* installing to library ‘/home/SMARTODDS/pollockj/R/x86_64-suse-linux-gnu-library/3.4’
* installing *source* package ‘foo’ ...
** libs
g++-6 -I/usr/lib64/R/include -DNDEBUG  -I"/home/SMARTODDS/pollockj/R/x86_64-suse-linux-gnu-library/3.4/Rcpp/include" -I/usr/local/include   -fpic  -O3 -c Num.cpp -o Num.o
g++-6 -I/usr/lib64/R/include -DNDEBUG  -I"/home/SMARTODDS/pollockj/R/x86_64-suse-linux-gnu-library/3.4/Rcpp/include" -I/usr/local/include   -fpic  -O3 -c RcppExports.cpp -o RcppExports.o
g++-6 -I/usr/lib64/R/include -DNDEBUG  -I"/home/SMARTODDS/pollockj/R/x86_64-suse-linux-gnu-library/3.4/Rcpp/include" -I/usr/local/include   -fpic  -O3 -c rcpp_hello_world.cpp -o rcpp_hello_world.o
g++-6 -I/usr/lib64/R/include -DNDEBUG  -I"/home/SMARTODDS/pollockj/R/x86_64-suse-linux-gnu-library/3.4/Rcpp/include" -I/usr/local/include   -fpic  -O3 -c rcpp_module.cpp -o rcpp_module.o
g++-6 -I/usr/lib64/R/include -DNDEBUG  -I"/home/SMARTODDS/pollockj/R/x86_64-suse-linux-gnu-library/3.4/Rcpp/include" -I/usr/local/include   -fpic  -O3 -c stdVector.cpp -o stdVector.o
g++-6 -shared -L/usr/lib64/R/lib -L/usr/local/lib64 -o foo.so Num.o RcppExports.o rcpp_hello_world.o rcpp_module.o stdVector.o -L/usr/lib64/R/lib -lR
installing to /home/SMARTODDS/pollockj/R/x86_64-suse-linux-gnu-library/3.4/foo/libs
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
Error: package or namespace load failed for ‘foo’ in .doLoadActions(where, attach):
 error in load action .__A__.1 for package foo: loadModule(module = "NumEx", what = TRUE, env = ns, loadNow = TRUE): Unable to load module "NumEx": Failed to initialize module pointer: Error in FUN(X[[i]], ...): no such symbol _rcpp_module_boot_NumEx in package foo

Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/home/SMARTODDS/pollockj/R/x86_64-suse-linux-gnu-library/3.4/foo’
有没有办法修复,或者这是最新Rcpp中的一个bug

> packageVersion("Rcpp")
[1] ‘0.12.11’
> sessionInfo()
R version 3.4.0 (2017-04-21)
Platform: x86_64-suse-linux-gnu (64-bit)
Running under: SUSE Linux Enterprise Desktop 12 SP2

Matrix products: default
BLAS/LAPACK: /usr/lib64/libopenblas_serial.so.0

locale:
 [1] LC_CTYPE=en_GB.UTF-8       LC_NUMERIC=C               LC_TIME=en_GB.UTF-8       
 [4] LC_COLLATE=en_GB.UTF-8     LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_GB.UTF-8   
 [7] LC_PAPER=en_GB.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.4.0

我可以确认
Rcpp.package.skeleton()
中的错误,即使更新了Rcpp 0.12.11.1

但是看看我们包含在包中的示例Rcpp模块包,特别是它的文件。我相当确定我是自动生成的,因此我们应该能够通过适当调用
tools::package\u native\u routine\u registration\u skeleton()
来修复骨架生成器


谢谢你提交错误报告。您可以(现在)手动调整
src/init.c
。我提交了一份报告,因此我们将考虑对临时Rcpp 0.12.11.2进行修复。

非常感谢您的回复,德克。我想我现在会继续使用旧版本的Rcpp。我想如果是我的话,我会使用新版本,并对你的“src/init.c”进行一次性手动调整。修复即将出现,因为JJ是Da Man!当我现在从github安装时,一切都正常工作了-非常感谢Dirk+JJ!