2015-09-07 160 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'。謝謝! –