Скомпилировать пакеты с Mac catalina не удалось - PullRequest
0 голосов
/ 22 октября 2019

Поскольку я установил Catalina, любая попытка скомпилировать пакет R не удалась. Моя система настроена на использование домашнего приготовления. Сообщения об ошибках выглядят следующим образом:

/usr/local/clang8/bin/clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include  -I/usr/local/clang8/include -I/usr/local/Cellar/gcc/8.3.0_2/include -fopenmp -fPIC  -Wall -g -O2  -c R_register_native.c -o R_register_native.o
In file included from R_register_native.c:1:
/Library/Frameworks/R.framework/Resources/include/R.h:55:11: fatal error: 'stdlib.h' file not found
# include <stdlib.h> /* Not used by R itself, but widely assumed in packages */

После поиска в Google я нашел эту ссылку на домашнем пивоваренном сайте GitHub . Я не могу следить за большей частью обсуждения, но похоже, что Apple удалила каталог usr / include и что домашние пивовары ищут решение. Мне не нужно сразу компилировать эти пакеты, поэтому я планирую подождать, пока home-brew найдет решение. Но если есть простой, пожалуйста, поделитесь.

После некоторого дополнительного поиска я нашел эту ссылку с кучей обсуждений по этой проблеме, многие из которых я не понял,Но этот фрагмент кода казался многообещающим.

sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/* /usr/local/include/

Я запустил его, перезагрузил свой Mac, открыл RStudio и получил список обновлений новых пакетов. Запустил обновление, ответив да для компиляции. Множество сообщений и несколько предупреждений, но, в конце концов, ошибок не было. Но все сообщения начинаются с чего-то вроде

/usr/local/clang8/bin/clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include  -I/usr/local/clang8/include -I/usr/local/Cellar/gcc/8.3.0_2/include -fopenmp -fPIC  -Wall -g -O2  -c R_register_native.c -o R_register_native.o

Когда я перехожу в / usr / local / clang8 / bin и получаю версию clang, это Apple clang version 11.0.0. Также clang символические ссылки на clang-8 и clang ++ символические ссылки на clang

Содержимое /usr/local/Cellar/gcc является каталогом с именем 9.2.0_1. Когда я захожу в / usr / bin и запускаю gcc --version, я получаю сообщения о том, что это версия Apple Clang 11.0.0. Кажется, что R компилируется с использованием версии Apple Clang. Это проблема? Есть ли какой-нибудь способ перенести все на использование brew-версии clang? К вашему сведению, здесь мой текущий путь - / usr / local / bin: / usr / local / sbin: / usr / local / bin: / usr / bin: / bin: / usr / sbin: / sbin: / Library / Apple / usr/ бен: / Library / Apple / бен: / Library / TeX / texbin: / OPT / X11 / бен: / USR / местные / CrossPack-AVR / бен: / USR / местные / мерзавец / бен

...