Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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
C++ 由于cpp11编译错误,R tidyr程序包安装失败(扩展模式x不包含参数包)_C++_R_Tidyverse_Tidyr - Fatal编程技术网

C++ 由于cpp11编译错误,R tidyr程序包安装失败(扩展模式x不包含参数包)

C++ 由于cpp11编译错误,R tidyr程序包安装失败(扩展模式x不包含参数包),c++,r,tidyverse,tidyr,C++,R,Tidyverse,Tidyr,我有以下与cp11相关的错误。 看起来cp11编译有一些错误,我不知道如何解决 我试着卸载这个软件包,然后重新安装 我在RHEL7上,gcc版本是4.8.5 > install.packages("tidyverse") Installing package into ‘/datascience/R/x86_64-redhat-linux-gnu-library/3.6’ (as ‘lib’ is unspecified) also installing the dep

我有以下与cp11相关的错误。 看起来cp11编译有一些错误,我不知道如何解决

我试着卸载这个软件包,然后重新安装

我在RHEL7上,gcc版本是4.8.5

> install.packages("tidyverse")
Installing package into ‘/datascience/R/x86_64-redhat-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
also installing the dependency ‘tidyr’

trying URL 'https://cran.rstudio.com/src/contrib/tidyr_1.1.1.tar.gz'
Content type 'application/x-gzip' length 879411 bytes (858 KB)
==================================================
downloaded 858 KB

trying URL 'https://cran.rstudio.com/src/contrib/tidyverse_1.3.0.tar.gz'
Content type 'application/x-gzip' length 712837 bytes (696 KB)
==================================================
downloaded 696 KB

* installing *source* package ‘tidyr’ ...
** package ‘tidyr’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
g++ -m64 -std=gnu++11 -I"/usr/include/R" -DNDEBUG  -I"/usr/lib64/R/library/cpp11/include" -I/usr/local/include  -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  -c cpp11.cpp -o cpp11.o
In file included from /usr/lib64/R/library/cpp11/include/cpp11/as.hpp:8:0,
                 from /usr/lib64/R/library/cpp11/include/cpp11.hpp:5,
                 from /usr/lib64/R/library/cpp11/include/cpp11/declarations.hpp:8,
                 from cpp11.cpp:4:
/usr/lib64/R/library/cpp11/include/cpp11/protect.hpp: In lambda function:
/usr/lib64/R/library/cpp11/include/cpp11/protect.hpp:185:52: error: parameter packs not expanded with ‘...’:
       return unwind_protect_sexp([&] { return ptr_(a...); });
                                                    ^
/usr/lib64/R/library/cpp11/include/cpp11/protect.hpp:185:52: note:         ‘a’
/usr/lib64/R/library/cpp11/include/cpp11/protect.hpp:185:53: error: expansion pattern ‘a’ contains no argument packs
       return unwind_protect_sexp([&] { return ptr_(a...); });
                                                     ^
make: *** [cpp11.o] Error 1
ERROR: compilation failed for package ‘tidyr’
* removing ‘/datascience/R/x86_64-redhat-linux-gnu-library/3.6/tidyr’
Warning in install.packages :
  installation of package ‘tidyr’ had non-zero exit status
ERROR: dependency ‘tidyr’ is not available for package ‘tidyverse’
* removing ‘/datascience/R/x86_64-redhat-linux-gnu-library/3.6/tidyverse’
Warning in install.packages :
  installation of package ‘tidyverse’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/Rtmp7JHlRI/downloaded_packages’

更新版本的gcc将按照@Maurits Evers所述正确编译tidyr

#Enable the rhscl repository
yum-config-manager --enable rhel-server-rhscl-7-rpms

#Install devtooset-X
yum install devtoolset-X

#Open a shell with the required environment variables.
scl enable devtoolset-X bash
然后打开一个R壳。如果在非交互式脚本中使用,请获取scl enable文件,该文件将在当前shell中设置环境变量

 source /opt/rh/devtoolset-X/enable

我正处于完全相同的情况下:试图在R3.6.1上安装tidyr,在cpp11和相同版本的gcc(4.8.5)中出现此错误

我们将g++、gcc、cc+cc更新为版本: (通用条款)9.3.1 20200408(红帽9.3.1-2) 版权所有(C)2019免费软件基金会 更新GCC后,我们重新安装了cpp11

但是:

install.packages(
+pkgs=“tidyr”,
+依赖项=真,
+回购协议=”https://cloud.r-project.org"
+ )
将软件包安装到“/dados/home/t03999/R/x86_64-pc-linux-gnu-library/3.6”中
(由于“lib”未指定)
正在尝试URL'https://cloud.r-project.org/src/contrib/tidyr_1.1.1.tar.gz'
内容类型“应用程序/x-gzip”长度879411字节(858 KB)
==================================================
下载858KB
*正在安装*source*包“tidyr”。。。
**包裹“tidyr”已成功解包并检查MD5金额
**使用分阶段安装
**自由基
g++-m64-std=gnu++11-I“/usr/lib64/R/./../include/R“-DNDEBUG-I”/dados/home/t03999/R/x86_64-pc-linux-gnu-library/3.6/cpp11/include“-I/systemr/port/linux-X64/include/zlib-I/systemr/port/port/linux/port/linux-X64/port/linux-cppo-11.cppo-cppo
cpp11.cpp:在函数“sexprc*”中,输入(SEXP):
cpp11.cpp:10:43:错误:“unmove”不是“cpp11”的成员
10 |返回cpp11::as_sexp(fillDown(cpp11::unmove(cpp11::as_cpp(x)));
|                                           ^~~~~~
cpp11.cpp:在函数“sexprc*”中,tidyr\u fillUp(SEXP)”:
cpp11.cpp:17:41:错误:“unmove”不是“cpp11”的成员
17 |返回cpp11::as_sexp(fillUp(cpp11::unmove(cpp11::as_cpp(x)));
|                                         ^~~~~~
cpp11.cpp:在函数“SEXPREC*”中,tidyr\u melt\u数据帧(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP)”中:
cpp11.cpp:24:49:错误:“unmove”不是“cpp11”的成员
24 |返回cpp11::as|sexp(melt|u数据帧(cpp11::unmove(cpp11::as|cpp(id|ind)),cpp11::unmove(cpp11::as|cpp(measure|ind)),cpp11::unmove(cpp11::as|cpp(变量名)),cpp11::unmove(cpp11::as||cpp(值名)),cpp11::unmove(cpp11::as||cpp)(值名)),cpp11::unmove(cpp11::as||cpp11::as|cpp11::as|cpp)(模板)),cpp11::unmove(cpp11::as_cpp(valueAsFactor)),cpp11::unmove(cpp11::as_cpp(variablesfactor));
|                                                 ^~~~~~
cpp11.cpp:24:104:错误:“unmove”不是“cpp11”的成员

我们仍然不知道如何解决这个问题。

我猜是错误消息

 error: ‘unmove’ is not a member of ‘cpp11’
是由cpp11软件包的0.2.0版本中正在进行的更改引起的。这就提到了这个问题。解决我的问题的方法是在R中使用以下命令安装旧版本的cpp11:

packageurl <- "https://cloud.r-project.org/src/contrib/cpp11_0.1.0.tar.gz"
install.packages(packageurl, repos=NULL, type="source")

packageurl可能是您的gcc版本太旧了。您能发布
gcc--version
的输出吗?Re
gcc
versions:可能是相关的,这反过来又链接到。最重要的是安装一个“devtoolset-7软件集合中更新的gcc版本”。@MauritsEvers我在RHEL7上,gcc版本是4.8。5@MauritsEvers谢谢你的问题链接。错误看起来是一样的。不幸的是,我没有权限免费更新此库以进行快速验证,但我会要求IT团队对其进行更新,以便检查它是否解决了问题。谢谢毛里塔尼亚,我想自从你发布这个后,URL已经改变了。我成功地使用了
packageurl
packageurl <- "https://cloud.r-project.org/src/contrib/cpp11_0.1.0.tar.gz"
install.packages(packageurl, repos=NULL, type="source")