"ld: Warning: directory not found" 尝试安装 R 包时
"ld: Warning: directory not found" when attempting to install R package
我目前正在使用 Mac 运行 El Cap 10.11.6 尝试在 R Studio 中安装 'robustbase' 包,但遇到以下错误:
ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0'
ld: warning: directory not found for option '-L/usr/local/gfortran/lib'
ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0'
ld: warning: directory not found for option '-L/usr/local/gfortran/lib'
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [robustbase.so] Error 1
ERROR: compilation failed for package ‘robustbase’
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/robustbase’
我四处寻找可能的解决方案,并在 this thread 中看到我可能需要修改 R/makevars 文件。
这是正确的解决方案吗?如果是这样,我在哪里修改这个文件,在我的终端?这超出了我对 R 和代码的基本知识,因此不胜感激。
如果有任何其他信息有帮助,请告诉我!
您似乎 运行 是 R
的过时版本。您应该安装最新版本。以下仅对R
.
的最新版本有效
您似乎没有安装 Fortran 编译器。您可以在本页 tools 从 CRAN 获取它。您可能还需要安装同一页面上提供的 clang6 编译器。
如果你这样做,你应该添加这个
/usr/local/clang6/bin
到您的 PATH 的开头。您应该检查 /usr/local/bin
是否在您的路径中以使 gfortran 编译器可访问。
您还应该将这些行添加到您的 ~/.R/Makevars
。
CC=/usr/local/clang6/bin/clang
CXX=/usr/local/clang6/bin/clang++
LDFLAGS =-L/usr/local/clang6/lib
在 macOS 15 Catalina 中,我遇到了类似的错误:
ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0'
。
那是因为我 copy-pasted .R/Makevars
来自另一个安装。
我使用此 Makevars 配置的 macOS Catalina 修复程序:
XCBASE=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
LLVMBASE=/usr/local/opt/llvm
GETTEXT=/usr/local/opt/gettext
GCCBASE=/usr/local/opt/gcc
LIBOMP=/usr/local/opt/libomp
# brew gcc: start
CC=$(LLVMBASE)/bin/clang
CXX=$(LLVMBASE)/bin/clang++
CXX11=$(LLVMBASE)/bin/clang++
CXX14=$(LLVMBASE)/bin/clang++
CXX17=$(LLVMBASE)/bin/clang++
CXX1X=$(LLVMBASE)/bin/clang++
# brew gcc: end
CPPFLAGS=-isystem "$(LLVMBASE)/include" -isysroot "$(XCBASE)"
LDFLAGS=-L"$(LLVMBASE)/lib" -L"$(GETTEXT)/lib" --sysroot="$(XCBASE)"
FC=$(GCCBASE)/bin/gfortran
F77=$(GCCBASE)/bin/gfortran
FLIBS=-L$(GCCBASE)/lib/gcc/9/ -lm
有了这个 Makevars
我已经能够从源代码构建这些 R 包:data.table
、sf
、devtools
、RcppArmadillo
、psych
、tmvnsim
、gower
和许多其他人。
我目前正在使用 Mac 运行 El Cap 10.11.6 尝试在 R Studio 中安装 'robustbase' 包,但遇到以下错误:
ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0'
ld: warning: directory not found for option '-L/usr/local/gfortran/lib'
ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0'
ld: warning: directory not found for option '-L/usr/local/gfortran/lib'
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [robustbase.so] Error 1
ERROR: compilation failed for package ‘robustbase’
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/robustbase’
我四处寻找可能的解决方案,并在 this thread 中看到我可能需要修改 R/makevars 文件。
这是正确的解决方案吗?如果是这样,我在哪里修改这个文件,在我的终端?这超出了我对 R 和代码的基本知识,因此不胜感激。
如果有任何其他信息有帮助,请告诉我!
您似乎 运行 是 R
的过时版本。您应该安装最新版本。以下仅对R
.
您似乎没有安装 Fortran 编译器。您可以在本页 tools 从 CRAN 获取它。您可能还需要安装同一页面上提供的 clang6 编译器。
如果你这样做,你应该添加这个
/usr/local/clang6/bin
到您的 PATH 的开头。您应该检查 /usr/local/bin
是否在您的路径中以使 gfortran 编译器可访问。
您还应该将这些行添加到您的 ~/.R/Makevars
。
CC=/usr/local/clang6/bin/clang
CXX=/usr/local/clang6/bin/clang++
LDFLAGS =-L/usr/local/clang6/lib
在 macOS 15 Catalina 中,我遇到了类似的错误:
ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0'
。
那是因为我 copy-pasted .R/Makevars
来自另一个安装。
我使用此 Makevars 配置的 macOS Catalina 修复程序:
XCBASE=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
LLVMBASE=/usr/local/opt/llvm
GETTEXT=/usr/local/opt/gettext
GCCBASE=/usr/local/opt/gcc
LIBOMP=/usr/local/opt/libomp
# brew gcc: start
CC=$(LLVMBASE)/bin/clang
CXX=$(LLVMBASE)/bin/clang++
CXX11=$(LLVMBASE)/bin/clang++
CXX14=$(LLVMBASE)/bin/clang++
CXX17=$(LLVMBASE)/bin/clang++
CXX1X=$(LLVMBASE)/bin/clang++
# brew gcc: end
CPPFLAGS=-isystem "$(LLVMBASE)/include" -isysroot "$(XCBASE)"
LDFLAGS=-L"$(LLVMBASE)/lib" -L"$(GETTEXT)/lib" --sysroot="$(XCBASE)"
FC=$(GCCBASE)/bin/gfortran
F77=$(GCCBASE)/bin/gfortran
FLIBS=-L$(GCCBASE)/lib/gcc/9/ -lm
有了这个 Makevars
我已经能够从源代码构建这些 R 包:data.table
、sf
、devtools
、RcppArmadillo
、psych
、tmvnsim
、gower
和许多其他人。