2017-06-20 90 views
2

我试着install.packages("samr"),但它看起来像是试图使用Fortran编译文件,但我的Fortran看起来并没有在指定的路径上安装程序,我的Fortran是从brew install gcc(我相信正确的路径是/usr/local/Cellar/gcc/7.1.0/lib/gcc/7)。这是我的错误:编译R包samr时出错:`ld:找不到-lgfortran的库

install.packages("samr") 
--- Please select a CRAN mirror for use in this session --- 
Package which is only available in source form, and may need 
    compilation of C/C++/Fortran: ‘samr’ 
Do you want to attempt to install these from sources? 
y/n: y 
installing the source package ‘samr’ 

trying URL 'https://cloud.r-project.org/src/contrib/samr_2.0.tar.gz' 
Content type 'application/x-gzip' length 36702 bytes (35 KB) 
================================================== 
downloaded 35 KB 

* installing *source* package ‘samr’ ... 
** libs 
gfortran -fPIC -g -O2 -c rankcol.f -o rankcol.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 samr.so rankcol.o -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0 -L/usr/local/gfortran/lib -lgfortran -lquadmath -lm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation 
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: *** [samr.so] Error 1 
ERROR: compilation failed for package ‘samr’ 
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/samr’ 

The downloaded source packages are in 
    ‘/private/var/folders/v_/n5nqr5812074ct0zkldqhg500000gn/T/RtmpBn8P5n/downloaded_packages’ 
Warning message: 
In install.packages("samr") : 
    installation of package ‘samr’ had non-zero exit status 

回答

1

它看起来像环境特定的问题。我使用的日常R上3.3.3,我能够没有任何问题,安装软件包:

# this one is required by samr and is no longer available via CRAN 
source("https://bioconductor.org/biocLite.R") 
biocLite("impute") 
# samr, itself, can be installed from CRAN 
install.packages("samr") 
library(samr) 

不过,我使用略有不同的安装gfortran的 - 直接从源:

https://gcc.gnu.org/wiki/GFortranBinaries

gfortran --version 
GNU Fortran (GCC) 6.3.0 
Copyright (C) 2016 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

,这就是gfortran的位置,同时从项目页面安装它

> which gfortran 
/usr/local/bin/gfortran 
> ls -l /usr/local/gfortran/lib/gcc/x86_64-apple-darwin16/6.3.0/ | wc -l 
     20 

也许你可以尝试从项目页面安装它?不幸的是,在macOS的情况下,在R包(尤其是Java和Fortran)中有很多有力的假设。

+0

感谢您的回答我基本上做了同样的事情,它的工作。在此之前,我还尝试从他们的页面直接下载并安装它,但一直存在版本问题。但按照gcc.gnu.org的规定安装gfortran似乎是解决方案。 –

+0

从gcc.gnu.org安装gfortran为我工作。 – jsb

+0

.oOo。凉!与Fortran玩得开心! ;).oOo。 – mko