Я отправил пакет в CRAN ( sundialr ) около 6 месяцев назад, который недавно был заархивирован, поскольку он не работает с параллельной версией make
. Точное сообщение об ошибке от одного из сопровождающих CRAN выглядит следующим образом
Это просто не удалось установить для меня с параллельным make:
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
Библиотека все еще создавалась ....
Кажется, пакет не может сгенерировать статическую библиотеку с параллельным make. Самым простым решением, которое я мог придумать для этой проблемы, было принудительное использование последовательной версии make
с помощью фальшивой команды .NOTPARALLEL
в Makevars
и Makevars.win
(https://github.com/sn248/sundialr/blob/master/src/Makevars). Я внес это изменение, и кажется, работать на моей машине и на тестировании на TravisCI
и Appveyor
(https://github.com/sn248/sundialr).
Однако, прежде чем я повторно отправлюсь в CRAN, я хотел бы получить мнение о том, будет ли этого достаточно, чтобы избавиться от ошибки при параллельном make? Извините за кросс-пост на r-package-devel
, похоже, мое электронное письмо к списку вчера не попало на форум.