Я хочу установить rJava на macOS Sierra 10.12.4. Моя текущая версия Java Java version: 1.8.0_131
, согласно R CMD javareconf|grep version
. Я установил Java с контейнером Homebrew.
Моя Java запускает следующие
$ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
Моя версия R
R version 3.3.2 (2016-10-31) -- "Sincere Pumpkin Patch"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin11.4.2 (64-bit)
R Конфигурация Java работает так, что
$ R CMD javareconf
Java interpreter : /usr/bin/java
Java version : 1.8.0_131
Java home path : /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
Non-system Java on macOS
trying to compile and link a JNI program
detected JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/darwin
detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
During startup - Warning messages:
1: Setting LC_COLLATE failed, using "C"
2: Setting LC_TIME failed, using "C"
3: Setting LC_MESSAGES failed, using "C"
4: Setting LC_MONETARY failed, using "C"
clang -I/Volumes/osx/201705_anaconda/anaconda/lib/R/include -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/../include/darwin -I/Volumes/osx/201705_anaconda/anaconda/include -fPIC -I/Volumes/osx/201705_anaconda/anaconda/include -c conftest.c -o conftest.o
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Volumes/osx/201705_anaconda/anaconda/lib/R/lib -arch x86_64 -L/Volumes/osx/201705_anaconda/anaconda/lib -lgfortran -L/Volumes/osx/201705_anaconda/anaconda -o conftest.so conftest.o -L/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/server -ljvm -L/Volumes/osx/201705_anaconda/anaconda/lib/R/lib -lR -lintl -liconv -lc -Wl,-framework -Wl,CoreFoundation
JAVA_HOME : /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre
Java library path: $(JAVA_HOME)/lib/server
JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/darwin
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
Updating Java configuration in /Volumes/osx/201705_anaconda/anaconda/lib/R
Done.
который выглядит правильно настроенным как здесь и этот поток SO не может скомпилируйте JNI-программу rJava, чтобы JDK выглядела правильно.
Я получаю ошибку компоновщика с помощью команды install.packages("rJava")
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver : '/usr/bin/jar'
compiler : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags : '-I/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/../include/darwin'
java libs : '-L/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/server -ljvm'
...
ld: library not found for -licuuc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libjri.jnilib] Error 1
make[1]: *** [src/JRI.jar] Error 2
make: *** [jri] Error 2
ERROR: compilation failed for package ‘rJava’
У меня такая же ошибка, несмотря на источники Java: официальный JDK и Homebrew Java возвращают ту же ошибку компоновщика/библиотеки.
Что может вызвать эту ошибку линкера/библиотеки licuuc с Anaconda и как ее исправить?
Старый поток
-
Установить rJava на macOS Sierra 10.12.1: ошибка компоновщика licuuc: кандидат на решение с MacPorts
-
rJava на MacOS Sierra 10.12.15: неподдерживаемая опция fopenmp
-
ошибка загрузки rJava в RStudio/R после "обновления" OSX Yosemite
Исправления, которые я пробовал
-
options("java.home")
возвращает NULL, поэтомуoptions("java.home"="/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/")
, руководствуясь здесь -
Unistalled Homebrew Java и заменил его на Oracele Java и JDK здесь: сохраняется та же ошибка библиотеки libcuc/linker. Я пробовал
sudo Rscript -e 'install.packages("rJava", repos="http://rforge.net", type="source")'
, руководствуясь этим, но те же ошибкиlicuuc library not found
. -
Обновлен macOS от El Capitan 10.11.6 до Sierra 10.12.4, но сохраняется ту же ошибку библиотеки libcuc/linker.
-
Работа без sudo, javac отсутствует (после этого здесь и здесь здесь). Эта ошибка может быть проще всего исправить при указании каталога javac на
/usr/bin/javac
, но лучшего решения? Когда я запускаю его с помощью sudo, я получил ту же ошибку licuuc.R CMD javareconf -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_LD_LIBRARY_PATH Rscript -e 'install.packages("rJava", repos="http://rforge.net", type="source")' Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin/javac" (-1) make[2]: *** [org/rosuda/JRI/Rengine.class] Error 2 make[1]: *** [src/JRI.jar] Error 2 make: *** [jri] Error 2 ERROR: compilation failed for package ‘rJava’
-
После удаления Anaconda
conda install anaconda-clean; anaconda-clean --yes; rm -rf ~/anaconda
, наведите здесь и установите R с помощью cask таким образом, чтобыbrew cask install r-app; sudo R CMD javareconf; Rscript -e 'install.packages("rJava", repos="http://rforge.net", type="source")'
, чтобы получить новая ошибкаclang: error: unsupported option '-fopenmp' make[2]: *** [libjri.jnilib] Error 1 make[1]: *** [src/JRI.jar] Error 2 make: *** [jri] Error 2 ERROR: compilation failed for package ‘rJava’