Итак, я только что обновился до R 4.4. Для справки, я использую Ubuntu 22.04. Следующим шагом была переустановка всех моих пакетов. Дело в том, что многие из них получают одну и ту же ошибку. Например, при попытке установить «vroom»
install.packages("vroom")
При установке пакета я обычно получаю очень длинный текст, но он заканчивается ошибкой:
cc1plus: some warnings being treated as errors
make: *** [/usr/lib/R/etc/Makeconf:202 : delimited_index.o] Error 1
ERROR: compilation failed for package ‘vroom’
* removing ‘/home/username/R/x86_64-pc-linux-gnu-library/4.4/vroom’
Итак, я понял, что это ошибка компиляции C++. Я ничего не знаю о C++.
Я нашел в сети людей с похожими ошибками, которые следовали шаблону make: *** [text] Error 1
, и люди предлагали переустановить пакет Rcpp
. Я сделал это с помощью функции install.packages()
, и с установкой проблем не возникло. Но моя проблема с установкой других пакетов, таких как vroom
, осталась прежней.
Есть ли у вас идеи, как решить эту проблему, или я обречен удалить R и вернуться к 4.3?
Спасибо за ваше время
Обновлено: Вот как выглядят предупреждения.
/usr/lib/R/site-library/cpp11/include/cpp11/protect.hpp:337:42: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 5 has type ‘SEXP’ {aka ‘SEXPREC*’} [-Wformat=]
337 | REprintf("%x CAR: %x CDR: %x TAG: %x\n", head, CAR(head), CDR(head), TAG(head));
| ~^ ~~~~~~~~~
| | |
| unsigned int SEXP {aka SEXPREC*}
Насколько я понимаю, они все выглядят одинаково. Единственное, что меняется, это цифры после protect.hpp:
. Предупреждение появляется для аргументов со 2 по 5.
То же самое произошло со мной в Debian Bookworm. Я устанавливал vroom для установки tidyverse. Этот пост здесь помог найти решение, и пока оно работает.
По сути, удалите все ссылки на «-Werror=format-security» в файле /etc/R/Makeconf (вам потребуются права администратора). Сохраните его и переустановите vroom/tidyverse.
Однако я не могу сказать, является ли это критической проблемой, поэтому после установки я восстановил файл Makeconf в исходном виде.
У меня была такая же проблема на Debian 12
, R 4.4.0
и cpp11 0.4.7
(все последние версии на момент написания этого комментария).
Я следил за обсуждением здесь, в котором предлагалось обновить пакет с именем progress
до 1.2.3
, и это сработало.
Ваш ответ можно улучшить, добавив дополнительную вспомогательную информацию. Пожалуйста, отредактируйте , чтобы добавить дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Более подробную информацию о том, как писать хорошие ответы, вы можете найти в справочном центре.