【发布时间】:2017-09-28 08:40:09
【问题描述】:
我正在尝试在我的 Rcpp 代码中使用 openmp,但遇到了一些问题(Mac OS)。 尝试了很多谷歌搜索,但找不到适合我的解决方案。如果您能提供一些想法,将不胜感激。
我的一些设置: 1) 从 home-brew 安装 llvm 2) ~/.R中的Makevars
CXX= /usr/local/opt/llvm/bin/clang-cpp
CXXFLAGS =-I/usr/local/lib -I/usr/local/opt/llvm/include
LDFLAGS="-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib"
看起来 Makevars 中指定的 LDFLAGS 被忽略了。 另外,当我使用 sourceCpp(temp.cpp) 时,我得到了这个错误
usr/local/opt/llvm/bin/clang-cpp -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Users/myname/库/R/3.2/library/Rcpp/include"-I"/Users/myname/Library/R/3.2/library/RcppArmadillo/include"-fopenmp -fPIC -I/usr/local/lib -I/usr/local /opt/llvm/include -c temp.cpp -o temp.o
在 temp.cpp:2 中包含的文件中: /usr/local/Cellar/llvm/4.0.0_1/bin/../include/c++/v1/math.h:301:15: 致命错误:找不到“math.h”文件
include_next
^~~~~~~~ 产生了 1 个错误。 sourceCpp 中的错误(粘贴(路径 2,“temp.cpp”,sep = “”),详细 = TRUE,:
构建共享库时发生错误 1。 make: *** [temp.o] 错误 1
在temp.cpp中,我放了
#include <math.h>
#include <RcppArmadillo.h>
#include <omp.h>
// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::plugins(openmp)]]
using namespace Rcpp;
【问题讨论】:
-
确保您阅读了 OS X / macOS 的所有相关常见问题解答条目。根据 Apple 的选择,它仍然不 支持 openMP,但如果您安装了正确的工具,您也可以为 R 获得它。这在其他地方都有记录。
-
@Max Lau 你有没有想过解决方案?