首页 > 解决方案 > 当 RCPP 程序无法正常工作时,有没有办法阻止 RGui 崩溃?

问题描述

我正在使用 Rcpp 运行 C++ 代码,使用 RGui(版本 3.4.1)作为用户界面。当我在 RGui 中运行相关程序时,我经常对正确编译但导致错误(例如搜索超出数组末尾)的 C++ 代码进行更改,从而导致 RGui 崩溃。这很严重,因为我必须重新打开 RGui,重新打开我的 R 脚本(有时会丢失未保存的更改),再次设置工作目录等,然后才能重新编译 C++ 代码并以这样的方式运行程序寻找问题或测试修正的方法。有时它会立即再次崩溃,因为我没有修复或绕过问题。

有没有办法改变 Rcpp 的运行方式,使 RGui 返回错误消息而不是在这些情况下崩溃?

标签: c++rrcpp

解决方案


简要地:

  1. 它拼写为 Rcpp。大写 R,小写 cpp。
  2. 是的,没有错误:)
  3. 一般来说,2.是唯一可行的答案。如果您需要托管语言,请使用 R。
  4. 如果代码使您的环境崩溃,请在环境之外进行测试。严重地。这就是为什么我(共同)编写更并在命令行上测试“原始代码”的原因:它只能关闭命令行应用程序。
  5. 我们在例如 RcppArmadillo 中确实有一个功能来测试“越界”向量访问:使用x.at(i,j)它会发出警告。见http://arma.sourceforge.net/docs.html#element_access

推荐阅读