Подтвердить что ты не робот

Создание пакетов R с использованием альтернативного GCC

В системах, в которых я работаю, есть GCC 4.5 (экспериментальный) в /usr/local/bin/gcc, который оказался проблематичным для некоторых R-пакетов. Я хотел бы использовать систему GCC в /usr/bin/gcc.

Я попытался установить CC и CXX в конфигурационных файлах Bash (.bashrc,.bash_profile и т.д.), а также в командной строке, но хотя Bash распознает изменение, R не делает.

Как я могу заставить R использовать версию GCC в /usr/bin вместо той, что находится в/usr/local/bin/?

4b9b3361

Ответ 1

Это не так хорошо задокументировано (например, мне не удалось найти его ни в "R Extension", ни "R Admin" прямо сейчас), но Брайан Рипли несколько раз упоминал об этом в списках.

Как правило, во время компиляции R настройки регистрируются и сохраняются в $R_HOME/etc/Makeconf. Одна возможность - редактировать этот файл напрямую, но у вас могут не быть привилегии root или вы не захотите влиять на всех остальных пользователей. Так что лучше создать

~/.R/Makevars

с записями

CC=gcc-4.4
CXX=g++-4.4

плюс любые флаги выбора и т.д., которые вы хотите установить. Это повлияет на все последующее использование R CMD INSTALL или R CMD check или... что вы запускаете.

Другие файлы в $R_HOME/etc/ также могут быть переопределены локально из ~/.R/.

Ответ 2

У меня была очень похожая проблема.

Что сработало для меня, так это определить каталог проекта (rstudio может сделать это для вас), а затем добавить файл .Renviron, который изменяет PATH и LD_LIBRARY_PATH, чтобы включить каталог с новым gcc. Например, в вашем случае .Renviron будет выглядеть примерно так:

LD_LIBRARY_PATH=/usr/local/bin/gcc/lib:/usr/local/bin/gcc/lib64:/usr/local/bin/gcc/libexec: другие пути

PATH=/usr/local/bin/gcc/bin:/usr/local/bin: другие пути

Ответ 3

Проверьте свой путь, чтобы увидеть, есть ли /usr/local/bin перед/usr/bin. Если это так, просто убедитесь, что сначала /usr/bin:

PATH=/usr/bin:${PATH}

(это нормально, если дубликат /usr/bin дублируется дважды).

Ответ 4

Посмотрите на configure.args часть ?install.packages и сравните это с ./configure --help, например. исходное дерево r.

Вы также можете из bash CC=clang R CMD INSTALL /path/to/package/source.

НТН