Rcpp警告:"找不到选项' -L / usr / local / Cellar / gfortran / 4.8.2 / gfortran'"

时间:2015-05-01 17:42:03

标签: r rcpp

此问题与其他一些问题有关,例如RccpArmadilloelement-wise-multiplication

然而,我的设置是这样的,我不知道我有什么编辑/ simlink使Rccp运行而不给我警告。

我使用最新的R版本在Mac 10.9(mavericks)上。

一开始,尝试从RccpvsR获得的以下代码,我收到了一个错误:

ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)`  

然后,基于RccpArmadillo我做了以下事情:

# Update FLIBS in ~/.R/Makevars
FLIBS=-L/usr/local/Cellar/gfortran/4.8.2/gfortran
#Re-Install from source
install.packages(c("Rcpp","RcppArmadillo","inline"),type="source")
#Restart R

这是因为我没有/usr/local/Cellar/gfortran/目录而只是尝试了。实际上,我的所有libgfortran*文件都在这里(在macports目录下):

>ls /opt/local/lib/gcc48/libgfortran.*
/opt/local/lib/gcc48/libgfortran.3.dylib       /opt/local/lib/gcc48/libgfortran.dylib
/opt/local/lib/gcc48/libgfortran.a       /opt/local/lib/gcc48/libgfortran.spec

此处/opt/local/lib/gcc48/gcc/x86_64-apple-darwin13/4.8.3/libgfortranbegin.a我在任何地方都没有gfortran个文件。

然后我再次尝试了代码RccpvsR,令人惊讶的是,它有效!除了我收到警告之外:

ld: warning: directory not found for option '-L/usr/local/Cellar/gfortran/4.8.2/gfortran' 

因为它当然不存在,但该代码cosineRcpp创建的函数运行没有任何问题。

因此,要问是否有人知道我是否必须将libgfortran /opt/local/lib/gcc48/文件与ln -s /opt/local/lib/gcc48/libgfortran.* /usr/local/lib/ 文件链接为:

FLIBS=-L/usr/local/Cellar/gfortran/4.8.2/gfortran

然后删除/编辑该行:

~/.R/Makevars

I I I I I MY IMAGE HERE I I I I I

或者如果我必须安装新的东西。

提前感谢您的时间!

1 个答案:

答案 0 :(得分:1)

来自@ kevin-ushey(至少我需要;我使用Prezto)的答案的小调整是向grep '^libraries:'添加单引号,导致:

FLIBS=`gfortran -print-search-dirs | grep '^libraries:' | sed 's|libraries: =||' | sed 's|:| -L|g' | sed 's|^|-L|'`

将该行添加到我的~/.R/Makevars文件中就可以了!