由于 "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 distcleanconfiguremake