Search code examples
rlinkerbuilding

Solve ld linker issues for building R source


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.


Solution

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

    wget https://github.com/unicode-org/icu/releases/download/release-58-3/icu4c-58_3-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.