我正在尝试编译一个 Rcpp 包,目前正在运行 Big Sur(显然是错误的)。我已经按照 here 的指示安装并更新了 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
答案 0 :(得分:2)
我将留下一些简短的笔记,作为 ARM 编译问题的答案(有点)。
话虽如此,我们的注意力现在转向房间里的大象:ARM 和 Big Sur。目前,除了 developer nightlies on the macOS R developer portal 之外,没有 R 和 gfortran 的原生/ARM 编译版本。
这里最好的方法是通过 Rosetta 2 运行 R 和 gfortran(例如使用非本地版本),直到 R 4.1.0 在即将到来的 4 月发布。
更深入的分析,请参见:Will R Work on Apple Silicon?
答案 1 :(得分:1)
The Coatless 教授在此处提供了有关 gfortran 和 clang 的更新版本建议: R COMPILER TOOLS FOR RCPP ON MACOS
其中一项更新是他们不再推荐使用 ~/.R/Makevars
。
请注意,这仅通过 Catalina (10.15) 解决,尽管它适用于 R 版本 4.y.z(链接的版本适用于 R 3)。理论上,它也可能适用于大苏尔。我还没有找到解决方案,但我在 Intel Mac(不是 M1/ARM)上运行 Big Sur。
为回答而不是评论而道歉,但我还不能评论(太新了)。