解决构建 R 源代码的 ld 链接器问题

Solve ld linker issues for building R source

在尝试从源代码安装 R 时,我 运行 遇到链接器问题,特别是:undefined reference to 'u_getVersion_58

我发现有关此错误的信息有限(例如,this post on the RStudio forum)。 尽管 运行 apt-get build-dep,这些问题仍然存在。

these comments by Dirk Eddenbuettel可以看出,它与libicu版本有关。我有 60 版的 libicu,而 R 3.6.0 和类似的最新版本似乎需要 58 版。

我们可以按如下方式从源安装 libicu 的早期版本:

wget http://download.icu-project.org/files/icu4c/58.2/icu4c-58_2-src.tgz
tar -xf icu4c-58_2-src.tgz
cd icu
make
make install

但是,make很可能会运行因缺少xlocale.h而进入编译错误。如所示 on this github post, this can be solved by running ln -s /usr/include/locale.h /usr/include/xlocale.h, as xlocale.h is just a subset of locale.h which was removed from glibc recently。在此之后,makemake install 应该成功用于 icu 版本 58,然后是 R.