4

I'm trying to build the most recent (4.1) version of Project-OSRM on Ubuntu 12.04, and have errors associated with Boost.

The older version of OSRM (3.9) relied on the version of Boost that is available as a package (1.48) but the new version needs a version of Boost >= 1.49.

So I installed Boost 1_55_0 from source to /usr/include/boost_1_55_0 and set BOOST_ROOT to this location.

When making Project-OSRM I get the following error:

Linking CXX executable osrm-datastore
/usr/bin/ld: warning: libicuuc.so.48, needed by /usr/include/boost_1_55_0/stage/lib/libboost_regex.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libicui18n.so.48, needed by /usr/include/boost_1_55_0/stage/lib/libboost_regex.so, not found (try using -rpath or -rpath-link)
/usr/include/boost_1_55_0/stage/lib/libboost_regex.so: undefined reference to `u_isspace_48'
/usr/include/boost_1_55_0/stage/lib/libboost_regex.so: undefined reference to `u_isblank_48'
/usr/include/boost_1_55_0/stage/lib/libboost_regex.so: undefined reference to `icu_48::Locale::~Locale()'
/usr/include/boost_1_55_0/stage/lib/libboost_regex.so: undefined reference to `u_tolower_48'
/usr/include/boost_1_55_0/stage/lib/libboost_regex.so: undefined reference to `icu_48::Locale::Locale()'
/usr/include/boost_1_55_0/stage/lib/libboost_regex.so: undefined reference to `u_digit_48'
/usr/include/boost_1_55_0/stage/lib/libboost_regex.so: undefined reference to `u_charFromName_48'
/usr/include/boost_1_55_0/stage/lib/libboost_regex.so: undefined reference to `icu_48::Locale::Locale(icu_48::Locale const&)'
/usr/include/boost_1_55_0/stage/lib/libboost_regex.so: undefined reference to `icu_48::Collator::createInstance(icu_48::Locale const&, UErrorCode&)'
/usr/include/boost_1_55_0/stage/lib/libboost_regex.so: undefined reference to `u_charType_48'
collect2: error: ld returned 1 exit status
make[2]: *** [osrm-datastore] Error 1
make[1]: *** [CMakeFiles/osrm-datastore.dir/all] Error 2
make: *** [all] Error 2

libicuuc.so.48 and libicui18n.so.48 would appear to be missing, but they are in fact present in /usr/lib.

Here are my questions:

  • How did libicuuc.so.48 and libicui18n.so.48 get into /usr/lib? Are they part of the standard Ubuntu setup?
  • Is this their proper location? and if yes, why are they "not found"?
  • If not, where should they be in order to be found??
  • After some googling I set LD_DEBUG to files but its output doesn't help me much; I can produce it here however.
scai
  • 20,297
  • 4
  • 56
  • 72
Bambax
  • 2,920
  • 6
  • 34
  • 43
  • Run `sudo ldconfig` and try again. If it still doesn't work, recompile from scratch (i.e. extract the archive again to a new folder, and start compiling there). – pts May 27 '14 at 08:14
  • No change with `ldconfig`. I have tried to restart compiling of OSRM from scratch (different directory) to no avail; I haven't tried to recompile Boost yet again: could it make a difference? – Bambax May 27 '14 at 08:33

0 Answers0