首页 > 解决方案 > 强制对 R 包进行串行编译

问题描述

大约 6 个月前,我向 CRAN(日晷)提交了一个包,该包最近被归档,因为它与make. 来自 CRAN 维护者之一的确切错误消息如下

这只是无法使用并行制作为我安装:

g++ -std=gnu++98 -std=gnu++98 -shared 
-L/data/blackswan/ripley/extras/lib64 -L/usrlocal/lib64 -o sundialr.so 
cvode.o RcppExports.o -L/data/blackswan/ripley/R/R-patched/lib -lRlapack 
-L/data/blackswan/ripley/R/R-patched/lib -lRblas -lgfortran -lm 
-lquadmath -L../inst/ ../inst/libsundials_all.a
g++: error: ../inst/libsundials_all.a: No such file or directory
make[1]: *** [/data/blackswan/ripley/R/R-patched/share/make/shlib.mk:6: 
sundialr.so] Error 1

图书馆仍在建造中....

似乎该软件包无法使用并行生成生成静态库。对于这个问题,我能想到的最简单的解决方案是在和( https://github.com/sn248/sundialr/blob/master/src/Makevars )中强制make使用.NOTPARALLELphony 命令的串行版本。我已经做出了这个改变,它似乎可以在我的机器上以及在和(https://github.com/sn248/sundialr)上进行测试。MakevarsMakevars.winTravisCIAppveyor

但是,在我重新提交给 CRAN 之前,我想了解一下这是否足以消除并行制作的错误?抱歉在 上交叉发帖r-package-devel,我昨天发给列表的电子邮件似乎没有到达论坛。

标签: rmakefilercppr-package

解决方案


推荐阅读