Принудительная последовательная компиляция на make для пакета R - PullRequest
0 голосов
/ 11 января 2019

Я отправил пакет в 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, похоже, мое электронное письмо к списку вчера не попало на форум.

...