此问题与其他一些问题有关,例如RccpArmadillo或element-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
或者如果我必须安装新的东西。
提前感谢您的时间!
答案 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
文件中就可以了!