2015-09-07 157 views
0

我使用自制软件在Mac OS上安装了R。直到现在,一切都很顺利。今天,我想在R的一些计算上使用任意精度。我看到Rmpfr包很容易使用,所以我决定安装它。首先,我用通常的:在Mac OS X(10.10.5优胜美地)在R 3.2.2上安装Rmpfr

install.packages("Rmpfr") 

和我收到此消息:

checking for mpfr.h... no 
configure: error: Header file mpfr.h not found; maybe use --with-mpfr-include=INCLUDE_PATH 
ERROR: configuration failed for package ‘Rmpfr’ 

所以我发现MPFR头均/usr/local/Cellar/mpfr/3.1.3/include,但不是在/usr/include/usr/local/include

我的符号链接他们以及/usr/local/Cellar/mpfr/3.1.3//usr/lib/usr/local/lib中的库。之后,它开始编译,但后来我收到以下消息:

clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/Cellar/r/3.2.2_1/R.framework/Resources/lib -L/usr/local/opt/gettext/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/openssl/lib -o Rmpfr.so Ops.o Summary.o convert.o init.o utils.o -lmpfr -lgmp -F/usr/local/Cellar/r/3.2.2_1/R.framework/.. -framework R -lintl -Wl,-framework -Wl,CoreFoundation 
ld: library not found for -lmpfr 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [Rmpfr.so] Error 1 
ERROR: compilation failed for package ‘Rmpfr’ 

任何想法我该怎么办?

回答

1

经过几个小时尝试不同的选择,最后我发现了一个工作。 我simlink的库到R的路径:
cd /usr/local/Cellar/r/3.2.2_1/R.framework/Resources/lib ln -s /usr/local/Cellar/mpfr/3.1.3/lib/libmpfr.* . ln -s /usr/local/Cellar/gmp/6.0.0a/lib/libgmp* .

在那之后,我跑:
install.packages('Rmpfr', type = "source", configure.args=c('--with-mpfr-include=/usr/local/include','--with-mpfr-lib=/usr/local/lib'))

所有的一切都编译OK。

+0

我不明白downvote。 Jorge发布了一个问题,然后发布了一个解决方案。 Mac用户遇到与自制安装包的目录放置相关的困难是相当常见的,并且没有许多规范的地方可以找到这些信息。不可否认的是,他应该在他将R安装在非标准位置的问题上得到了解决,但我想这对其他用户来说是有价值的, –

1

您可以简单地运行brew link gmp mpfr来创建缺失的符号链接。

+0

Cool !!,我不知道' homebrew'。谢谢! –