如何解决当install.package“ ggiraph”出现错误:“在AWS-Cloud Linux上没有匹配功能可调用‘regex_replace” / RStudio
尝试在R中安装ggiraph时出现此错误(基于Linux的AWS实例上的RStudio服务器,新的RStudio和R版本)。
在Linux系统的任何地方都找不到任何建议(仅对于OS X)。
有人遇到过同样的问题,您是如何解决的?
谢谢!
错误消息:
dsvg.cpp: In function ‘std::string compile_css(const string&,const char*,const string&,const char*)’:
dsvg.cpp:725:46: error: no matching function for call to ‘regex_replace(const char*&,std::regex&,std::string&)’
return std::regex_replace(css,pattern,cls);
^
dsvg.cpp:725:46: note: candidates are:
In file included from /usr/include/c++/4.8.2/regex:62:0,from dsvg.cpp:16:
/usr/include/c++/4.8.2/bits/regex.h:2162:5: note: template<class _Out_iter,class _Bi_iter,class _Rx_traits,class _Ch_type> _Out_iter std::regex_replace(_Out_iter,_Bi_iter,const std::basic_regex<_Ch_type,_Rx_traits>&,const std::basic_string<_Ch_type>&,std::regex_constants::match_flag_type)
regex_replace(_Out_iter __out,_Bi_iter __first,_Bi_iter __last,^
/usr/include/c++/4.8.2/bits/regex.h:2162:5: note: template argument deduction/substitution failed:
dsvg.cpp:725:46: note: deduced conflicting types for parameter ‘_Bi_iter’ (‘std::basic_regex<char>’ and ‘std::basic_string<char>’)
return std::regex_replace(css,cls);
^
In file included from /usr/include/c++/4.8.2/regex:62:0,from dsvg.cpp:16:
/usr/include/c++/4.8.2/bits/regex.h:2182:5: note: template<class _Rx_traits,class _Ch_type> std::basic_string<_Ch_type> std::regex_replace(const std::basic_string<_Ch_type>&,std::regex_constants::match_flag_type)
regex_replace(const basic_string<_Ch_type>& __s,^
/usr/include/c++/4.8.2/bits/regex.h:2182:5: note: template argument deduction/substitution failed:
dsvg.cpp:725:46: note: mismatched types ‘const std::basic_string<_Ch_type>’ and ‘const char*’
return std::regex_replace(css,cls);
^
dsvg.cpp:726:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
...
^
make: *** [dsvg.o] Error 1
ERROR: compilation failed for package ‘ggiraph’
removing ‘/home/sandbox/R/x86_64-redhat-linux-gnu-library/3.6/ggiraph’
restoring previous ‘/home/sandbox/R/x86_64-redhat-linux-gnu-library/3.6/ggiraph’
Error: Failed to install 'ggiraph' from GitHub:
(converted from warning) installation of package ‘/tmp/RtmpU8zekV/file485f57d349a8/ggiraph_0.7.9.tar.gz’ had non-zero exit status
解决方法
对于我这个问题,我的解决方案是更新linux GCC版本。 在终端上键入脚本以更新GCC。
gcc -v ## to check your gcc version(original centos 7 seems 2.5.4)
并参考本文以更新开发者工具8 https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/
在CentOS上,安装CentOS存储库中可用的软件包centos-release-scl:
sudo yum install centos-release-scl
在RHEL上,为您的系统启用RHSCL存储库:
sudo yum-config-manager --enable rhel-server-rhscl-7-rpms
安装集合:
sudo yum install devtoolset-8
开始使用软件集合:
scl enable devtoolset-8 bash
检查您的GCC版本是否最新:
gcc -v #### Now GCC version should be 8.3.1 20190311
进入R以在终端上安装ggiraph:
sudo R
安装ggiraph软件包:
install.packages('ggiraph',repos='http://cran.us.r-project.org')
退出终端R
q() # type "n" to not save workspace image
并切换到rstudio控制台,对ggiraph包进行存储
library(ggiraph)
所有ggiraph功能现在都可以使用! :D
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。