我正试图复制我的R包的CRAN消毒器故障,这取决于Rcpp的摇杆/r-发展-b-clang码头形象。
当我试图安装Rcpp时,我会得到一个关于no type named 'R_ContinueUnwind'的错误。这是我做错了什么,还是与Rcpp和Rdevel不兼容?
如果是后者,是否有办法获得类似的码头形象,使用地址消毒剂的非开发版本的R?
下面是我一直试图运行和输出的命令:
docker run --cap-add SYS_PTRACE --rm -it rocker/r-devel-ubsan-clang /bin/bash
root@e9f11aceb087:/# Rscriptdevel -e "install.packages('Rcpp')"
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
trying URL 'http://cran.rstudio.com/src/contrib/Rcpp_0.12.18.tar.gz'
Content type 'application/x-gzip' length 3809164 bytes (3.6 MB)
==================================================
downloaded 3.6 MB
* installing *source* package ‘Rcpp’ ...
** package ‘Rcpp’ successfully unpacked and MD5 sums checked
** libs
clang++-4.0 -stdlib=libc++ -fsanitize=address,undefined -fno-sanitize=float-divide-by-zero -fno-omit-frame-pointer -fsanitize-address-use-after-scope -I/usr/local/lib/R/include -DNDEBUG -I../inst/include/ -I/usr/local/include -fpic -g -O3 -Wall -pedantic -mtune=native -c Date.cpp -o Date.o
In file included from Date.cpp:31:
In file included from ../inst/include/Rcpp.h:27:
In file included from ../inst/include/RcppCommon.h:128:
../inst/include/Rcpp/exceptions.h:150:7: error: no type named 'R_ContinueUnwind' in the global namespace
::R_ContinueUnwind(token);
~~^
1 error generated.
/usr/local/lib/R/etc/Makeconf:166: recipe for target 'Date.o' failed
make: *** [Date.o] Error 1
ERROR: compilation failed for package ‘Rcpp’
* removing ‘/usr/local/lib/R/site-library/Rcpp’
The downloaded source packages are in
‘/tmp/RtmpqVuvlD/downloaded_packages’
Warning message:
In install.packages("Rcpp") :
installation of package ‘Rcpp’ had non-zero exit status编辑
下面是docker image list的结果,以及容器Rdevel --version中的结果
docker image list rocker/r-devel-ubsan-clang
REPOSITORY TAG IMAGE ID CREATED SIZE
rocker/r-devel-ubsan-clang latest c769161f77fb 10 months ago 4.47GB和Rdevel --version
Rdevel --version
R Under development (unstable) (2017-09-16 r73288) -- "Unsuffered Consequences"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.我通过使用docker pull获得了这个映像,现在我正在尝试从头构建它,遵循该映像10个月的历史。
发布于 2018-08-01 17:06:23
这里的维修人员。我们也可以在发行票上在回购处讨论这个问题。我已经有一段时间没有尝试用clang编译R-devel了(当我在家里通过gcc构建r-devel时),所以不知道为什么符号会丢失。
温斯顿掌握了整个概念,他创建了一整套调试码头容器在这次回购中。
否则,(优秀的) R轮毂建造器也会生成消毒液。剩下的一个问题是CRAN对其设置的更改(除了发布它们的简短描述)不太直接,因此永远不清楚这个设置实际上是否与他们的设置相同。
编辑:实际上,对您的符号的grep'ing表示它是视R版本3.5.0或更高版本而定
#if (defined(R_VERSION) && R_VERSION >= R_Version(3, 5, 0))
::R_ContinueUnwind(token);
#endif如果给出的话,你能再检查一下你的容器设置吗?我们这里可能有一个错配的R版本和R-发展版本--应该很容易修复。
https://stackoverflow.com/questions/51638351
复制相似问题