首页 > 解决方案 > 在 Big Sur 中编译 Rcpp 包时出现 Clang 错误

问题描述

我正在尝试编译一个 Rcpp 包,目前正在运行 Big Sur(显然是错误的)。我已经按照此处的说明安装并更新了 Xcode 和 CLANG 。但是,尝试构建时出现以下错误:

ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin18/8.2.0'
ld: library not found for -lquadmath
clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation)

这很奇怪,原因有很多。首先,我的 gfortran 目录是L/usr/local/gfortran/lib/gcc/aarch64-apple-darwin20.2.0/11.0.0.

我的 ~/.R/Makevars 文件是这样设置的:

CC=/usr/local/clang4/bin/clang
CXX=/usr/local/clang4/bin/clang++
CXX1X=/usr/local/clang4/bin/clang++
CXX98=/usr/local/clang4/bin/clang++
CXX11=/usr/local/clang4/bin/clang++
CXX14=/usr/local/clang4/bin/clang++
CXX17=/usr/local/clang4/bin/clang++
LDFLAGS=-L/usr/local/clang4/lib 

标签: gccclangrcppmacos-big-sur

解决方案


我将留下一些简短的笔记作为 ARM 编译问题的答案(排序)。

  1. 链接到的帖子有点旧(最新更新 2017 / R 3.4.0),并且旨在将 OpenMP 合并到旧版本的 R 中。我将确保在今天晚些时候对其进行更新以强调这一点。
  2. 由于 ARM 架构(例如 M1 芯片)尚未公布,因此重点是使用基于 Intel 的 mac。

话虽如此,我们现在的注意力转向了房间里的大象:ARM 和 Big Sur。目前,在 macOS R 开发者门户网站上的开发者之夜之外,没有可用的 R 和 gfortran 的本机/ARM 编译版本。

最好的方法是通过Rosetta 2运行 R 和 gfortran (例如使用非本地版本),直到即将到来的 4 月发布 R 4.1.0。

如需更深入的分析,请参阅:R 是否适用于 Apple Silicon?


推荐阅读