r - 记录 R 包时,devtools::document() 因段错误而崩溃
问题描述
我搜索了一整天,我不知道如何找出为什么会发生这种情况以及如何解决它。
当我devtools::document()
在 RStudio 中运行一个新启动的项目(新目录中的一个包)时,我得到一个
*** caught segfault ***
address 0x18, cause 'memory not mapped'
RStudio 崩溃了。
当我尝试从命令行执行此操作时也是如此。
这是完整的错误:
==> devtools::document(roclets=c('rd', 'collate', 'namespace', 'vignette'))
*** caught segfault ***
address 0x18, cause 'memory not mapped'
Traceback:
1: dyn.load(file, DLLpath = DLLpath, ...)
2: library.dynam(lib, package, package.lib)
3: loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]])
4: namespaceImport(ns, loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]), from = package)
5: loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]])
6: namespaceImport(ns, loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]), from = package)
7: loadNamespace(package, ...)
8: doTryCatch(return(expr), name, parentenv, handler)
9: tryCatchOne(expr, names, parentenv, handlers[[1L]])
10: tryCatchList(expr, classes, parentenv, handlers)
11: tryCatch(loadNamespace(package, ...), error = function(e) e)
12: requireNamespace(dep_name, quietly = TRUE)
13: check_dep_version(pkg, version, compare)
14: check_suggested("roxygen2")
15: devtools::document(roclets = c("rd", "collate", "namespace", "vignette"))
16: withCallingHandlers(expr, packageStartupMessage = function(c) invokeRestart("muffleMessage"))
17: suppressPackageStartupMessages({ oldLC <- Sys.getlocale(category = "LC_COLLATE") Sys.setlocale(category = "LC_COLLATE", locale = "C") on.exit(Sys.setlocale(category = "LC_COLLATE", locale = oldLC)) devtools::document(roclets = c("rd", "collate", "namespace", "vignette"))})
An irrecoverable exception occurred. R is aborting now ...
Exited with status 11.
这是结果sessionInfo()
:
> sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.5
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] magrittr_1.5 data.table_1.11.4
loaded via a namespace (and not attached):
[1] compiler_3.4.2 tools_3.4.2 yaml_2.1.19
当我在 IDE 中使用“文档”按钮时也会发生同样的情况。
可以构建包,但我使用 Roxygen 进行所有导入和导出。
我不知道如何解决这个问题。
一些选项是devtools::clean_dll()
在 document() 之前使用并重新安装 devtools、roxygen2 和 Rcpp。
我尝试了所有这些但没有任何效果。
解决方案
推荐阅读
- mysql - Magento 2:如何允许更新具有外键约束的列的空值?
- prometheus - 将字符串附加到grafana查询中的变量?
- c# - 鼠标与孩子一起留在面板上
- hive - -- 不支持配置单元导入的增量 lastmodified 选项
- sql-server - 如何根据 SQL Server 2017 中的最后日期创建一行
- java - 我可以在不使用本机查询的情况下在 JPA 中创建此查询吗?
- reactjs - 如何避免使用useRef在react中重新渲染?
- c# - 用户登录 Office365 时 Excel 互操作不再工作
- mobile - 移动地理定位到地铁
- mysql - 当对 utf8mb4 数据和子字符串 ü 有索引时,MySql 和 MariaDB 中的错误?