当前位置: 首页 > 知识库问答 >
问题:

MacOS Sierra 10.12.15上的rJava:不支持的选项fopenmp

饶骁
2023-03-14

我正在尝试在MacOS Sierra上安装rJava。必须在其他地方尝试其他版本MacOS的提示和指南,例如 https://github.com/snowflakedb/dplyr-snowflakedb/wiki/Configuring-R-rJava-RJDBC-on-Mac-OS-X 并在Mac上安装xlsx和rJava

但这并不奏效。非常感谢任何帮助。谢了。

我的Mac版本:macOS Sierra版本10.12.15我的R版本:3.4.0 (2017-04-21)我的Rstudio版本:版本0.99.903

Java版本:

bash-3.2$ /usr/libexec/java_home -V
bash-3.2$ 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)


bash-3.2$ 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
clang -I/Library/Frameworks/R.framework/Resources/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/usr/local/include   -fPIC  -Wall -g -O2  -c conftest.c -o conftest.o
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o conftest.so conftest.o -L/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/server -ljvm -F/Library/Frameworks/R.framework/.. -framework R -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 /Library/Frameworks/R.framework/Resources
override rw-r--r--  root/admin for /Library/Frameworks/R.framework/Resources/etc/Makeconf? (y/n [n]) n
not overwritten
override rw-r--r--  root/admin for /Library/Frameworks/R.framework/Resources/etc/ldpaths? (y/n [n]) n
not overwritten
Done.

当我试图安装rJava时,我运行了

`R --quiet -e 'install.packages("rJava", type="source", repos="http://cran.us.r-project.org")` 

我得到了错误:

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’
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava’

The downloaded source packages are in
    ‘/private/var/folders/w8/ksbj8dh15bz2lkss7h2tpzk80000gn/T/Rtmp6r9HI0/downloaded_packages’
Warning message:
In install.packages("rJava", type = "source", repos = "http://cran.us.r-project.org") :
  installation of package ‘rJava’ had non-zero exit status

我跑了:

"curl -#ROL https://www.rforge.net/rJava/snapshot/rJava_0.9-8.tar.gz
R CMD INSTALL rJava_0.9-8.tar.gz"

并得到以下错误消息:

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’

* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava’

我不知道该怎么办。谢谢你的帮助。

共有3个答案

邵奇
2023-03-14

看看这里:

http://www.owsiak.org/?p=3671

你可以找到关于如何在macOS中处理rJava的相当详细的描述。

在继续操作之前,请确保安装 Oracle 提供的 JDK。

裘禄
2023-03-14

注释 将 OSX 10.12.6 与 Java 1.8.0_181 一起使用,并处理上述问题和与编译 rJava 相关的另一个问题。

使用以下命令安装rJava:

wget https://cran.r-project.org/src/contrib/rJava_0.9-10.tar.gz
tar xvfz rJava_0.9-10.tar.gz
cd rJava
R CMD INSTALL rJava

为什么使用R CMD INSTALL?这将保留config.log文件,使您能够进行调试;install.packages()没有,在这种情况下,帮助您获取可能不是很有帮助(例如https://github . com/s-u/rJava/issues/111)。

如果您已经更新了Java,请确保运行以下代码(记住您需要的是JDK,而不是JRE)。

sudo R CMD javareconf

要修复此错误,请执行以下操作:

checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this.

执行以下操作:

sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
sudo ln -f -s /usr/local/lib/libjvm.dylib /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/

要修复此错误,请执行以下操作:

clang: error: unsupported option '-fopenmp

执行以下操作:

注意:对于较新版本的 gcc,可能需要修改说明,但请确保您获得的版本大于 7(请参阅下面的注释);以下命令可用于查找可用版本:

brew search gcc

然后安装gcc:

brew install gcc@7
sudo chown -R $(whoami):admin /usr/local
brew link --overwrite --force gcc@7
brew unlink gcc@7 && brew link gcc@7
brew install llvm
mkdir -p ~/.R

## Check the versions and folder in FLIBS match what you install
echo "CC=gcc-7
CXX=g++-7
CXX1X=g++-7
CFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
CXXFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
FLIBS=-L/usr/local/Cellar/gcc\@7/7.3.0/lib/gcc/7" > ~/.R/Makevars

注意:您需要任何大于 7 的 gcc 版本;前面答案中提到的 without-multilib 标志可能不可用,但它很重要。为什么没有multilib标志?:macOS上的 https://thecoatlessprofessor.com/programming/openmp-in-r-on-os-x/ 和OpenMP / gcc:gcc --without-multilib不可用

然后安装rJava

R CMD INSTALL rJava

最后,测试库(您应该看到您的Java版本):

library(rJava)
.jinit()
.jcall("java/lang/System", "S", "getProperty", "java.runtime.version")
凤修筠
2023-03-14

本文在macOS Sierra 10.12.4上为我解决了这个fopenmp问题。我在这里概述了解决方案,但也在下面。问题是macOS gcc不支持取证选项,所以我们必须编译一个新版本的gcc。

forenmp问题的解决方案

我已经用Homerew的r-app brew cask install r-app和Oracle的JDK对此进行了测试。然后我做了以下事情

brew install homebrew/versions/gcc49 --without-multilib #Long ~70min compiling...
sudo chown -R $(whoami):admin /usr/local
brew link --overwrite --force gcc49
brew unlink gcc49 && brew link gcc49
brew install llvm
mkdir ~/.R; touch ~/.R/Makevars

echo "VER=-4.9 
CC=gcc$(VER)
CXX=g++$(VER)
CXX1X=g++$(VER)
CFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
CXXFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
FLIBS=-L/usr/local/Cellar/gcc/4.9.3/lib/gcc/4.9" > ~/.R/Makevars

现在

sudo R CMD javareconf 
Rscript -e 'install.packages("rJava", repos="http://rforge.net", type="source")'

现在rJava开始工作了!

 类似资料:
  • DataSource 接口 不支持 timeout 相关操作 Connection 接口 不支持存储过程,函数,游标的操作 不支持执行 native SQL 不支持 savepoint 相关操作 不支持 Schema/Catalog 的操作 不支持自定义类型映射 Statement 和 PreparedStatement 接口 不支持返回多结果集的语句(即存储过程,非 SELECT 多条数据) 不

  • 我向asp提出以下请求。net web api的PUT方法从我的角度。js客户端: 但是得到以下错误(在小提琴手): 这是我的asp的一部分。net web api web。配置文件: 数据控制器web api: 这是我的问题:为什么我得到的错误(见上文),当我在fiddler(作品)和angularClient(不工作)完全相同的请求?

  • 我有一个Electron应用程序,我正试图打开一个本机文件选择器对话框,并限制用户只选择一个具有某个自定义扩展名的文件(称之为.foo)。 在macOS(莫哈韦,如果有必要的话)上,使用Electron ^3.0.0,这: 将打开仅允许用户选择目录的本机文件选择器。 这个: 将打开一个本机文件选择器,允许我拾取单个文件,但允许选择具有任何扩展名的文件。 如何在macOS上打开本机文件选择器对话框,

  • 我正在浏览Docker撰写入门页面。 在步骤3中,我制作了一个文件如下所述: 但是当我跑的时候: 我发现以下错误: 服务“web”的配置选项不受支持 我做错了什么?我不知道发生了什么。

  • 问题内容: 我想在我的项目中使用AngularJS UI Bootstrap Tabs,但是我需要它来支持路由。 例如: 据我从源代码可以看出,current 和指令不支持路由。 添加路由的最佳方法是什么? 问题答案: 要添加路由,通常使用ng- view指令。我不确定修改角度UI以支持您要查找的内容是否足够容易,但这是一个大致显示我认为您要查找的内容(这不一定是最好的方式- 希望有人可以提供为您

  • 我们为 IdentityServer 提供了一些免费的、商业性的支持和咨询方案。 免费支持 免费支持是以社区和公共论坛的形式提供的。 StackOverflow StackOverflow 社区里日益增多的 IdentityServer 用户在监视着上面的问题。如果时间允许,我们也会试着尽可能多地回答这些问题。 你可以使用以下源来订阅所有 IdentityServer4 相关的问题: https:

  • 问题内容: 我正在尝试按照以下说明为Python构建XGBoost软件包: 这是使用支持OpenMP的编译器安装XGBoost的完整解决方案。通过获得openmp支持的gcc-5.xx 。(brew是OS X上apt-get的事实上的标准。因此,不建议单独安装HPC,但应该可以。): 该错误恰好在命令中发生。 事前搜索,我尝试了这两种解决方案,但无济于事,除了担心担心会弄乱一切而安装另一个gcc的

  • 我想上传带有spring-boot和vue的文件。但是,我有一个错误“415:Unsupported MediaType”。 这是我的Spring启动控制器。 而且,这是我的vue代码。 我尝试,但遇到同样的错误。我该如何修复它?