Mac OS X R错误“ld:warning:directory not found for option” [英] Mac OS X R error "ld: warning: directory not found for option"

查看:2034
本文介绍了Mac OS X R错误“ld:warning:directory not found for option”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  *安装*源代码*包' mclust'... 
** package'mclust'已成功解压并检查MD5总和
** libs
gfortran-4.8 -fPIC -g -O2 -c mclust.f -o mclust。 o
gfortran-4.8 -fPIC -g -O2 -c mclustaddson.f -o mclustaddson.o
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L / Library / Frameworks /R.framework/Resources/lib -L ​​/ usr / local / lib -o mclust.so mclust.o mclustaddson.o -L / Library / Frameworks / R.framework / Resources / lib -lRlapack -L / Library / Frameworks / R.framework / Resources / lib -lRblas -L / usr / local / lib / gcc / x86_64 -app -darwin13.0.0 / 4.8.2 -lgfortran -lquadmath -lm -L / usr / local / lib / gcc / x86_64- apple-darwin13.0.0 / 4.8.2 -lgfortran -lquadmath -lm -F / Library / Frameworks / R.framework / .. -framework R -Wl,-framework -Wl,CoreFoundation
ld:warning:directory not选项'-L / usr / local / lib / gcc / x86_64-apple-darwin13.0.0 / 4.8.2'
ld:warning:找不到选项'-L / usr / local / lib / gcc / x86_64-apple-darwin13 .0.0 / 4.8.2'
ld:library找不到-lquadmath
clang:error:连接器命令失败,退出代码1(使用-v查看调用)
make:** * [mclust.so]错误1
错误:程序包'mclust'的编译失败
*去除'/Library/Frameworks/R.framework/Versions/3.3/Resources/library/mclust'
install.packages中的警告:
安装包'mclust'具有非零退出状态

我没有 /usr/local/lib/gcc/x86_64-apple-darwin13.0.0 ,所以无法找到它是有道理的。我有 / usr / local / lib / gcc / i686-apple-darwin11 /usr/local/lib/gcc/4.8 (符号链接到Homebrew安装)。它在哪里得到 x86_64-apple-darwin13.0.0 from?



有很多引用类似错误在线。但是,它们都与在Xcode中编译有关,并通过更新项目设置来解决,这在此处不适用。

解决方案

您需要修改〜/ .R / Makevars 文件。有关此更详细的信息,请参阅: https://cran.r-project.org/doc/manuals/r-release/R-admin.html#OS-X-packages



<另外,这个问题在之前已经被@ kevin-ushey更深入地回答了 Rcpp warning:找不到选项'-L / usr / local / Cellar / gfortran / 4.8.2 / gfortran'的目录



正在发生的事情是您的代码没有在 gcc 下运行,而是被转发到 clang



您需要在〜/ .R /

   VER = -5.3.0 
CC = gcc $(VER)
CXX = g ++ $(VER)
CFLAGS = -mtune = native -g -O2 -Wall -pedantic -Wconversion
CXXFL AGS = -mtune = native -g -O2 -Wall -pedantic -Wconversion
FLIBS = -L / usr / local / Cellar / gcc / 5.3.0 / lib / gcc / 5

假设您已经通过自制软件安装了 gcc

  brew install gcc 

(gfortran现在在brew中附带gcc)

I am trying to install an R package from source, but getting an error:

* installing *source* package ‘mclust’ ...
** package ‘mclust’ successfully unpacked and MD5 sums checked
** libs
gfortran-4.8   -fPIC  -g -O2  -c mclust.f -o mclust.o
gfortran-4.8   -fPIC  -g -O2  -c mclustaddson.f -o mclustaddson.o
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o mclust.so mclust.o mclustaddson.o -L/Library/Frameworks/R.framework/Resources/lib -lRlapack -L/Library/Frameworks/R.framework/Resources/lib -lRblas -L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2 -lgfortran -lquadmath -lm -L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2 -lgfortran -lquadmath -lm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
ld: warning: directory not found for option '-L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2'
ld: warning: directory not found for option '-L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2'
ld: library not found for -lquadmath
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mclust.so] Error 1
ERROR: compilation failed for package ‘mclust’
* removing ‘/Library/Frameworks/R.framework/Versions/3.3/Resources/library/mclust’
Warning in install.packages :
  installation of package ‘mclust’ had non-zero exit status

I don't have /usr/local/lib/gcc/x86_64-apple-darwin13.0.0, so it makes sense that it can't be found. I have /usr/local/lib/gcc/i686-apple-darwin11 and /usr/local/lib/gcc/4.8 (symlink to Homebrew installation). Where is it getting x86_64-apple-darwin13.0.0 from?

There are a lot of references to a similar error online. However, all of them are related to compiling in Xcode and resolved by updating project settings, which is not applicable here.

解决方案

You need to modify the ~/.R/Makevars file. For a greater overview of this see: https://cran.r-project.org/doc/manuals/r-release/R-admin.html#OS-X-packages

Alternatively, this has been answered before in a bit more depth by @kevin-ushey in Rcpp warning: "directory not found for option '-L/usr/local/Cellar/gfortran/4.8.2/gfortran'".

What is happening is your code is not being run under gcc instead it is being forwarded to clang

You will need to change your compile statements in ~/.R/Makevars/ to gcc using:

VER=-5.3.0 
CC=gcc$(VER)
CXX=g++$(VER)
CFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
CXXFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
FLIBS=-L/usr/local/Cellar/gcc/5.3.0/lib/gcc/5

This assumes you have already installed gcc via homebrew under:

brew install gcc

(gfortran ships with gcc in brew now)

这篇关于Mac OS X R错误“ld:warning:directory not found for option”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆