我正在尝试编译并使用以下代码(我在SO上看到过):
// [[Rcpp::depends(BH)]]
#include <Rcpp.h>
#include <boost/multiprecision/float128.hpp>
namespace mp = boost::multiprecision;
// [[Rcpp::export]]
std::string mexp(double mx)
{
mp::float128 x(mx);
mp::float128 res = mp::exp(x);
return res.convert_to<std::string>();
}
在编译之前,我必须执行Sys.setenv("PKG_LIBS" = "-lquadmath")
否则编译不起作用。
然后编译运行正常,但是当我在R中键入mexp(1)
时,R会话完全崩溃。我错过了什么吗?会话在RStudio以及经典的R gui中崩溃。
PS:我在Windows下,我用R-3.3.3以及R-3.4.1发生了崩溃。
刚刚在Linux上使用R-3.4.1试过,这很好用。我甚至不需要做Sys.setenv("PKG_LIBS" = "-lquadmath")
。