我正在开发一个建议R 的并行包的包(所以我的 DESCRIPTION 有一个Suggests: parallel (>= 1.13.1)
声明。它在 OSX 和 Linux 下编译良好,但在 Windows 上构建时失败(使用win-builder)。这是 win-生成器吐出:
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
*** arch - i386
Error: package or namespace load failed for 'spectrolab' in
library.dynam(lib, package, package.lib):
DLL 'parallel' not found: maybe not installed for this architecture?
Error: loading failed
Execution halted
*** arch - x64
ERROR: loading failed for 'i386'
* removing 'd:/RCompile/CRANguest/R-devel/lib/spectrolab'
在此处找到 win-builder 的完整输出https://win-builder.r-project.org/4k9QC0st397H/
只有一个函数尝试使用parallel。它或多或少是这样的:
#' Smooth spline functions for spectra
#' ... roxygen stuff ...
#' @importFrom stats smooth.spline
#' @importFrom parallel detectCores mclapply
smooth.spectra = function(x, ...){
p = requireNamespace("parallel", quietly = TRUE) && .Platform$OS.type != "windows"
if(p){
r = parallel::mclapply(x, stats::smooth.spline)
} else {
r = lapply(x, stats::smooth.spline)
}
r
}
关于问题是什么的任何想法?