-->

Solve ld linker issues for building R source

2020-04-20 03:28发布

问题:

While trying to install R from source, I ran into linker issues, in particular: undefined reference to 'u_getVersion_58

I found limited information on this error (eg, this post on the RStudio forum). Despite running apt-get build-dep, these issues persisted.

It is apparent from these comments by Dirk Eddenbuettel that it relates to libicu versions. I have libicu version 60, while R 3.6.0 and similar recent versions seem to require version 58.

回答1:

We can install a previous version of libicu from source as follows:

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

However, make is likely to run into a compilation error due to missing xlocale.h. As indicated 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. After this, make and make install should succeed for icu version 58, and following that, for R.