Я пытаюсь скомпилировать старую версию R (в частности, 2.11.1). «Почему?», Спросите вы. Ну, у меня есть программа, которую я пытаюсь запустить (она была написана не мной, но я надеюсь использовать ее в своем исследовании), которая была написана на «старом» R, и автор программы специально упомянул этот R-2.11. 1 или старше должны быть использованы .
Я запустил ./configure
без явных ошибок (весь вывод слишком длинный, чтобы публиковать здесь, но меня предупредили, что я не могу сделать PDF, DVI или HTML-версии справки страниц, о которых я не слишком беспокоюсь).
Затем, когда я передаю команду make
, меня встречает следующая ошибка (после длинного потока успешных команд):
Warning in solve.default(rgb):
unable to load shared library '/home/sbowerma/Programs/R-2.11.1/modules//lapack.so':
/home/sbowerma/Programs/R-2.11.1/lib/libRlapack.so: undefined symbol: _gfortran_compare_string
Error in solve.default(rgb) : lapack routines cannot be loaded
Error: unable to load R code in package 'grDevices'
Execution halted
Однако Я подтвердил, что библиотека lapack.so
фактически находится в том положении, в котором она должна быть.
R-2.11.1
процесс сборки, кажется, компилирует свои собственные версии библиотек BLAS и LAPACK (как R-2.11.1/lib/libRblas.so
и R-2.11.1/lib/libRlapack.so
) по умолчанию - даже если версии системы этих библиотек доступны. По причинам я не смог определить, они локально созданные освобождают, кажется, правильно не связываются gfortran
библиотека времени выполнения (по крайней мере, не на 64-разрядной Ubuntu 13.10).
Используя ./configure --help
Вы будете видеть
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-blas use system BLAS library (if available), or specify
it [no]
--with-lapack use system LAPACK library (if available), or specify
it [no]
Таким образом, обходное решение состоит из проверки, что у Вас есть соответствующий BLAS/LAPACK (или ATLAS) пакеты разработки, установленные в системе и затем добавлении --with-blas
и --with-lapack
опции к Вашей конфигурации, например.
./configure --with-blas --with-lapack --prefix=/usr/local
Настраивать отчет должен теперь указать на что-то как
External libraries: readline,BLAS(generic),LAPACK(generic)
и после этого необходимо смочь завершиться make
.