R包构建在Windows上,但无法运行示例 - 崩溃R会话

时间:2018-06-08 13:52:24

标签: r rcpp r-package

我正在构建一个package,它可以在Windows和Linux上成功编译macOS。该软件包使用Rcpp为C库提供接口以解决ODE(常微分方程)。

该程序包通过macOSUbuntu上的所有检查(通过travis-ci测试)。该软件包也成功构建在Windows 10计算机上,但运行一个简单的示例(在其他平台上成功运行,导致R会话崩溃。)

我在我的智慧结束,试图找出问题所在。来自Appveyor的消息粘贴在下方。

此示例可在https://github.com/sn248/sundialr/blob/master/inst/examples/cv_Roberts_dns.r

找到

并在其他平台上成功运行。

有关如何在此处调试此内容的任何指示都非常有用,谢谢!

* running examples for arch 'i386' ... ERROR
Running examples in 'sundialr-Ex.R' failed
The error most likely occurred in:
> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
> ### Name: cvode
> ### Title: cvode
> ### Aliases: cvode
> 
> ### ** Examples
> 
> Rcpp::sourceCpp(code = '#include <Rcpp.h>
+ 
+ using namespace Rcpp;
+ 
+ typedef NumericVector (*funcPtr) (double t, NumericVector y, NumericVector ydot);
+ 
+ // [[Rcpp::export]]
+ NumericVector cv_Roberts_dns (double t, NumericVector y, NumericVector ydot){
+   ydot[0] = -0.04 * y[0] + 1e04 * y[1] * y[2];
+   ydot[2] = 3e07 * y[1] * y[1];
+   ydot[1] = -ydot[0] - ydot[2];
+ 
+   return ydot;
+ 
+ }
+ 
+ // [[Rcpp::export]]
+ XPtr<funcPtr> putFunPtrInXPtr() {
+ 
+   XPtr<funcPtr> testptr(new funcPtr(&cv_Roberts_dns), false);
+   return testptr;
+ 
+ }')
> 
> 
> # R code to generate time vector, IC and solve the equations
> time_t <- c(0.0, 0.4, 4, 40, 4E2, 4E3, 4E4, 4E5, 4E6, 4E7, 4E8, 4E9, 4E10)
> my_fun <- putFunPtrInXPtr()
> df <- cvode(time_t, c(1,0,0), my_fun , 1e-04, c(1e-8,1e-14,1e-6))

0 个答案:

没有答案