rcpp函数导致程序包崩溃

科佐洛夫斯卡

我有一个包https://github.com/tfrostig/RSEE,其中包括一些(3)RcppArmadillo函数。该软件包在其他计算机上也可以正常工作。构建软件包时,不会出现任何错误,但是,每当我调用任何RCPP函数时,都会导致R崩溃。

当我尝试使用单元测试时,出现错误:“状态为-1073741819退出”。

如果我使用Rcpp::sourceCpp()然后调用函数,则一切正常。具有Rcpp功能的其他软件包也可以正常工作。

例如:

`// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>
using namespace Rcpp;
using namespace arma;


// [[Rcpp::export]]
arma::mat localRegression(arma::mat weightmat, arma::mat modelmat, arma::vec xtemp) {
  return inv(modelmat.t() * weightmat * modelmat) * modelmat.t() * weightmat * xtemp;
}

使用RSEE:::localRegression会导致它崩溃。如果我使用加载源代码sourceCpp,然后调用localRegression它就可以了。

什么会导致这种类型的问题?

The session info is: 
R version 4.0.3 (2020-10-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

locale:
[1] LC_COLLATE=English_Israel.1252  LC_CTYPE=English_Israel.1252    LC_MONETARY=English_Israel.1252
[4] LC_NUMERIC=C                    LC_TIME=English_Israel.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] RSEE_0.1.0

loaded via a namespace (and not attached):
[1] compiler_4.0.3 tools_4.0.3    Rcpp_1.0.6    
奥立佛

在你的包以一看,我假设的错误和崩溃源于 arma::mat iterLowess(..., double epsmed = 10^(-6)) {src/RCPP_LOWESS.cpp请注意,这^不是Cpp中的幂运算,而是字节XOR运算此外,它10是一个整数,而它10.0是一个双精度数,因此尽管编译器“应”执行自动转换,但它可能只是失败。

尝试例如

library(Rcpp)
f <- cppFunction('double powww(double x = 10^(-6)){
                 double y = x^2;
                 return y;}')

您会注意到这会引发错误。

几乎不可能给您确切的答案,因为我们在问题中的信息非常有限,但是由于您提到它在调用函数时立即崩溃(我也假设它在调试状态下也会崩溃),因此我们应该查看错误的函数定义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

程序包名称包含“点”和Rcpp函数时,程序包编译失败

来自分类Dev

在构建R程序包时从另一个Rcpp函数调用Rcpp函数

来自分类Dev

从同一程序包中的R代码调用Rcpp c ++函数

来自分类Dev

升级mysql导致损坏的程序包

来自分类Dev

dyn.load错误,将程序包与Rcpp链接

来自分类Dev

dyn.load错误,将程序包与Rcpp链接

来自分类Dev

执行SSIS程序包会使Visual Studio崩溃

来自分类Dev

如何安装'Rcpp,包?我收到“程序包不可用”的信息

来自分类Dev

如何在导入的程序包中引用函数?

来自分类Dev

调试和更改程序包中的R函数

来自分类Dev

在Azure函数中使用自己的程序包(工件)?

来自分类Dev

R函数调用,无需加载程序包

来自分类Dev

R:fdwm()函数的异常行为(evmix程序包)

来自分类Dev

无法在Windows Server 2008中加载Rcpp程序包

来自分类Dev

带有Rcpp代码的程序包无法在Windows上构建

来自分类Dev

使用Rcpp构建程序包时处理修饰的外部二进制文件

来自分类Dev

使用传递给函数的闭包会导致malloc崩溃

来自分类Dev

更改程序包名称后崩溃的应用程序

来自分类Dev

RCPP:我的距离矩阵程序比包中的函数慢

来自分类Dev

如何使Nuget.org程序包中的ExcelDna函数在程序包用户的Excel会话中可见

来自分类Dev

如何导入/调用程序包的“子程序包”?

来自分类Dev

节点程序包与浏览器程序包

来自分类Dev

在Atom Editor中运行程序包规格始终会导致错误

来自分类Dev

使用Azure Devops Symbole Server调试NuGet程序包导致找不到类

来自分类Dev

在Atom Editor中运行程序包规格始终会导致错误

来自分类Dev

导致程序崩溃的结构

来自分类Dev

重载“>>”导致程序崩溃

来自分类Dev

动态加载程序包

来自分类Dev

独立程序包

Related 相关文章

  1. 1

    程序包名称包含“点”和Rcpp函数时,程序包编译失败

  2. 2

    在构建R程序包时从另一个Rcpp函数调用Rcpp函数

  3. 3

    从同一程序包中的R代码调用Rcpp c ++函数

  4. 4

    升级mysql导致损坏的程序包

  5. 5

    dyn.load错误,将程序包与Rcpp链接

  6. 6

    dyn.load错误,将程序包与Rcpp链接

  7. 7

    执行SSIS程序包会使Visual Studio崩溃

  8. 8

    如何安装'Rcpp,包?我收到“程序包不可用”的信息

  9. 9

    如何在导入的程序包中引用函数?

  10. 10

    调试和更改程序包中的R函数

  11. 11

    在Azure函数中使用自己的程序包(工件)?

  12. 12

    R函数调用,无需加载程序包

  13. 13

    R:fdwm()函数的异常行为(evmix程序包)

  14. 14

    无法在Windows Server 2008中加载Rcpp程序包

  15. 15

    带有Rcpp代码的程序包无法在Windows上构建

  16. 16

    使用Rcpp构建程序包时处理修饰的外部二进制文件

  17. 17

    使用传递给函数的闭包会导致malloc崩溃

  18. 18

    更改程序包名称后崩溃的应用程序

  19. 19

    RCPP:我的距离矩阵程序比包中的函数慢

  20. 20

    如何使Nuget.org程序包中的ExcelDna函数在程序包用户的Excel会话中可见

  21. 21

    如何导入/调用程序包的“子程序包”?

  22. 22

    节点程序包与浏览器程序包

  23. 23

    在Atom Editor中运行程序包规格始终会导致错误

  24. 24

    使用Azure Devops Symbole Server调试NuGet程序包导致找不到类

  25. 25

    在Atom Editor中运行程序包规格始终会导致错误

  26. 26

    导致程序崩溃的结构

  27. 27

    重载“>>”导致程序崩溃

  28. 28

    动态加载程序包

  29. 29

    独立程序包

热门标签

归档