【问题标题】:math.h not found when using openmp (llvm) with sourceCpp将 openmp (llvm) 与 sourceCpp 一起使用时找不到 math.h
【发布时间】: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 你有没有想过解决方案?

标签: macos llvm openmp rcpp


【解决方案1】:

您是否安装了 Xcode 命令行工具(或在升级操作系统后重新安装)?尝试运行:

xcode-select --install

这是我最近遇到的类似问题的解决方案。

【讨论】:

    【解决方案2】:

    对于 macos 用户,更新 xcode 并安装它,然后安装 devtools ,它对我有用。

    这表明找不到 dplyr 包头。我刚从源头尝试过,一切正常。从犰狳问题单来看,我认为一个问题是没有使用 CRAN 提供的 clang 并设置适当的路径。参考文献安装 clang7 r 二进制文件

    https://github.com/rmacoslib/r-macos-clang/issues/10

    https://thecoatlessprofessor.com/programming/cpp/r-compiler-tools-for-rcpp-on-macos/

    【讨论】:

      【解决方案3】:

      对于 macOS,最好的解决方案是简单地update 你的 R 版本。最新版本的 R (>3.6) 已解决此问题。

      在此处查看讨论 - https://github.com/RcppCore/Rcpp/issues/922

      【讨论】:

        猜你喜欢
        • 2021-01-19
        • 2016-11-05
        • 1970-01-01
        • 2022-08-03
        • 1970-01-01
        • 1970-01-01
        • 2015-10-25
        • 2020-09-30
        相关资源
        最近更新 更多