Calling a c++ function on Rstudio on a MAC and getting (clang: error: unsupported option '-fopenmp')
Calling a c++ function on Rstudio on a MAC and getting (clang: error: unsupported option '-fopenmp')
我知道如何编码,但我真的不知道如何使用计算机。
我有一个程序,我必须 运行 完成我的硕士论文。它是一个具有多个协作的代码,并且 运行 完美地在 Linux 上。但是,它是一个非常复杂的模拟代码,因此需要时间 运行 用于多个参数。我在大学时一直在使用我的 Linux 来 运行,但我想 运行 在我的个人计算机上 运行 一些 (MAC OS)。它通过使用 R 语言调用 c++ 函数来工作,如下所示(文件名是 c++ 上的代码)。
在 Rstudio 脚本上:
Sys.setenv("PKG_CPPFLAGS" = "-fopenmp -DPARALLEL")
system("rm filename.so")
system("rm filename.o")
system ("R CMD SHLIB filename.cpp")
dyn.load("filename.so")
在 system ("R CMD SHLIB filename.cpp")
之后出现错误:
clang: error: unsupported option '-fopenmp'
make: *** [filename.o] Error 1
我研究过这个主题并发现了这个
Enable OpenMP support in clang in Mac OS X (sierra & Mojave)
我已经安装了 LLVM,但我不知道如何在这种情况下使用它。
在这种情况下我该如何使用它?
提前谢谢你。
“不要那样做。”阅读 R 和 Rcpp 并使用适当的工具(特别是打包 and/or 编译),应该 尽可能选择 OpenMP。特别是,
对手动构建编译命令说“不”除非你知道你在用 R 做什么并且已经阅读 Writing R Extensions carefully a few times. It can be done, I used to show how in tutorials and workshops (see old slides from 12-15 years ago on my website) but we first moved to package inline which helps here, and later relied on the much better Rcpp Attributes.
现在,macOS 有一些额外的障碍,哪些工具有效,哪些工具无效。 rcpp-devel mailing list may be of help, the default step is otherwise to consult the tutorial by James.
编辑: 当然,如果您“只是想让上面的方法起作用”,请尝试 删除 导致错误,即 使用
Sys.setenv("PKG_CPPFLAGS" = "")
因为你的 macOS 盒子似乎有一个编译器但没有 OpenMP(据我所知,这是默认的,这要归功于 Apple 的一些“令人惊讶的”默认选择 - 请参阅上述安装帮助教程。)
我知道如何编码,但我真的不知道如何使用计算机。
我有一个程序,我必须 运行 完成我的硕士论文。它是一个具有多个协作的代码,并且 运行 完美地在 Linux 上。但是,它是一个非常复杂的模拟代码,因此需要时间 运行 用于多个参数。我在大学时一直在使用我的 Linux 来 运行,但我想 运行 在我的个人计算机上 运行 一些 (MAC OS)。它通过使用 R 语言调用 c++ 函数来工作,如下所示(文件名是 c++ 上的代码)。
在 Rstudio 脚本上:
Sys.setenv("PKG_CPPFLAGS" = "-fopenmp -DPARALLEL")
system("rm filename.so")
system("rm filename.o")
system ("R CMD SHLIB filename.cpp")
dyn.load("filename.so")
在 system ("R CMD SHLIB filename.cpp")
之后出现错误:
clang: error: unsupported option '-fopenmp' make: *** [filename.o] Error 1
我研究过这个主题并发现了这个 Enable OpenMP support in clang in Mac OS X (sierra & Mojave)
我已经安装了 LLVM,但我不知道如何在这种情况下使用它。
在这种情况下我该如何使用它? 提前谢谢你。
“不要那样做。”阅读 R 和 Rcpp 并使用适当的工具(特别是打包 and/or 编译),应该 尽可能选择 OpenMP。特别是,
对手动构建编译命令说“不”除非你知道你在用 R 做什么并且已经阅读 Writing R Extensions carefully a few times. It can be done, I used to show how in tutorials and workshops (see old slides from 12-15 years ago on my website) but we first moved to package inline which helps here, and later relied on the much better Rcpp Attributes.
现在,macOS 有一些额外的障碍,哪些工具有效,哪些工具无效。 rcpp-devel mailing list may be of help, the default step is otherwise to consult the tutorial by James.
编辑: 当然,如果您“只是想让上面的方法起作用”,请尝试 删除 导致错误,即 使用
Sys.setenv("PKG_CPPFLAGS" = "")
因为你的 macOS 盒子似乎有一个编译器但没有 OpenMP(据我所知,这是默认的,这要归功于 Apple 的一些“令人惊讶的”默认选择 - 请参阅上述安装帮助教程。)