由于 "undefined reference to `libiconv'",R 安装失败
Installation of R fails because of "undefined reference to `libiconv'"
我在安装 R 3.5.1 时遇到问题。尽管我在 "cshrc" 中定义了库 "libiconv" 的路径,但安装失败并显示以下消息:
-L"../../lib" -lRblas -L/usr/lib/gcc/x86_64-redhat-linux/4.4.4 -lgfortran -lm -lreadline -lpcre -llzma -lbz2 -lz -lrt -ldl -lm
platform.o: In function `do_eSoftVersion':
/opt/local/rstudio/R-3.5.1/src/main/platform.c:3088: undefined reference to `_libiconv_version'
sysutils.o: In function `Riconv':
/opt/local/rstudio/R-3.5.1/src/main/sysutils.c:799: undefined reference to `libiconv'
/opt/local/rstudio/R-3.5.1/src/main/sysutils.c:799: undefined reference to `libiconv'
/opt/local/rstudio/R-3.5.1/src/main/sysutils.c:799: undefined reference to `libiconv'
/opt/local/rstudio/R-3.5.1/src/main/sysutils.c:799: undefined reference to `libiconv'
sysutils.o: In function `Riconv_close':
...
顺便说一句,我没有root权限。
找了2天也没找到原因
如有任何帮助,我们将不胜感激。
您似乎在使用 glibc 系统(目击者:目标为 x86_64-redhat-linux
的编译器以及您设置的标记 centos
)。
在 glibc 系统上,您不需要 GNU libiconv,因为 glibc 已经包含了一个全功能的 iconv 工具。所以只需卸载 libiconv,然后从头开始重建 R (make distclean
; configure
; make
).
我可以通过使用 conda 重新安装 R 来解决这个问题。不仅是 R,其他需要的库和 rstudio 都可以通过 conda 轻松安装。例如 R、rstudio 和 plotly(一个库)通过以下命令安装:
conda install -c r r-essentials —-prefix=/where/to/install
conda install -c r rstudio —-prefix=/where/to/install
conda install -c conda-forge r-plotly —-prefix=/where/to/install
尽情享受吧。
我通过编辑 $PATH 弄明白了,make
被 conda 误导了。
echo $PATH
:/gatk:/opt/miniconda/envs/gatk/bin:/opt/miniconda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/gatk:/opt/miniconda/envs/gatk/bin:/opt/miniconda/bin:
export PATH
我有同样的错误。根据您的综合回答,我认为是 Conda。修复:
conda deactivate
make distclean
、configure
和 make
我在安装 R 3.5.1 时遇到问题。尽管我在 "cshrc" 中定义了库 "libiconv" 的路径,但安装失败并显示以下消息:
-L"../../lib" -lRblas -L/usr/lib/gcc/x86_64-redhat-linux/4.4.4 -lgfortran -lm -lreadline -lpcre -llzma -lbz2 -lz -lrt -ldl -lm
platform.o: In function `do_eSoftVersion':
/opt/local/rstudio/R-3.5.1/src/main/platform.c:3088: undefined reference to `_libiconv_version'
sysutils.o: In function `Riconv':
/opt/local/rstudio/R-3.5.1/src/main/sysutils.c:799: undefined reference to `libiconv'
/opt/local/rstudio/R-3.5.1/src/main/sysutils.c:799: undefined reference to `libiconv'
/opt/local/rstudio/R-3.5.1/src/main/sysutils.c:799: undefined reference to `libiconv'
/opt/local/rstudio/R-3.5.1/src/main/sysutils.c:799: undefined reference to `libiconv'
sysutils.o: In function `Riconv_close':
...
顺便说一句,我没有root权限。
找了2天也没找到原因
如有任何帮助,我们将不胜感激。
您似乎在使用 glibc 系统(目击者:目标为 x86_64-redhat-linux
的编译器以及您设置的标记 centos
)。
在 glibc 系统上,您不需要 GNU libiconv,因为 glibc 已经包含了一个全功能的 iconv 工具。所以只需卸载 libiconv,然后从头开始重建 R (make distclean
; configure
; make
).
我可以通过使用 conda 重新安装 R 来解决这个问题。不仅是 R,其他需要的库和 rstudio 都可以通过 conda 轻松安装。例如 R、rstudio 和 plotly(一个库)通过以下命令安装:
conda install -c r r-essentials —-prefix=/where/to/install
conda install -c r rstudio —-prefix=/where/to/install
conda install -c conda-forge r-plotly —-prefix=/where/to/install
尽情享受吧。
我通过编辑 $PATH 弄明白了,make
被 conda 误导了。
echo $PATH
:/gatk:/opt/miniconda/envs/gatk/bin:/opt/miniconda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/gatk:/opt/miniconda/envs/gatk/bin:/opt/miniconda/bin:
export PATH
我有同样的错误。根据您的综合回答,我认为是 Conda。修复:
conda deactivate
make distclean
、configure
和make