1

I have an already compiled Linux app which has become dated. To use it, I want to create a Docker image and an appropriate environment to work with. My problem is that is app requires an older version of the boost libraries. 1.57.0 to be specific.

I have been able to get boost installed (I believe correctly) but the app errors out.

The error that I am getting is: undefined symbol: _ZN5boost15program_options3argE


I am hoping someone has experience with this. Briefly, my pipeline is:

get the rocker/verse Docker image that has Debian and R and some more goodies I need. Bash in to it, apt-get install ... etc.

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev

cd home

wget -O boost_1_57_0.tar.gz https://sourceforge.net/projects/boost/files/boost/1.57.0/boost_1_57_0.tar.gz/download

tar xzvf boost_1_57_0.tar.gz

cd boost_1_57_0

./bootstrap.sh --with-libraries=atomic,chrono,context,coroutine,container,date_time,exception,filesystem,graph,graph_parallel,iostreams,locale,log,math,mpi,program_options,python,random,regex,serialization,signals,system,test,thread,timer,wave

./b2 toolset=gcc cxxflags=-std=gnu++0x

sudo ./b2 install

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

-----Edit: added additional bash code that was missing here

sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf’
StudentOfScience
  • 809
  • 3
  • 11
  • 35
  • env returns: LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 HOSTNAME=76e47d17eaf2 S6_BEHAVIOUR_IF_STAGE2_FAILS=2 PASSWORD=1234 PWD=/ HOME=/root R_VERSION=3.5.2 S6_VERSION=v1.21.7.0 TERM=xterm SHLVL=1 PATH=/usr/lib/rstudio-server/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/TinyTeX/bin/x86_64-linux/ _=/usr/bin/env – StudentOfScience Jan 17 '19 at 07:33
  • by app I mean executable – StudentOfScience Jan 17 '19 at 08:00
  • Found advice about running the following, but did not work: export LD_LIBRARY_PATH=/usr/local/lib – StudentOfScience Jan 17 '19 at 08:01
  • Possible duplicate of [Link error in Boost program_options code on Ubuntu](https://stackoverflow.com/q/8652096/608639). `echo _ZN5boost15program_options3argE | c++filt` results in `boost::program_options::arg`. Also see [undefined reference to boost::program_options in xubuntu](https://stackoverflow.com/q/39591067/608639) and `-D_GLIBCXX_USE_CXX11_ABI=0`. – jww Jan 17 '19 at 08:04
  • Thankyou @jww. I get the same resulting output. But what does that mean? I looked through the link you sent. But since I need an older boost library I cant just apt-get install the newest boost library nor do I have the source code to know where the library was linked to. I am not seeing a solution here. – StudentOfScience Jan 17 '19 at 08:19
  • The best solution is to recompile I guess, but I don't have the original source, just trying to make an old (a couple years old) executable to run. – StudentOfScience Jan 17 '19 at 08:30
  • Scrolling down to @AhmedElcheikh answer ... I seem to have helped a bit but still no full execution https://stackoverflow.com/questions/12578499/how-to-install-boost-on-ubuntu – StudentOfScience Jan 18 '19 at 02:36
  • Did the error change after following their install routine? – Greenstick Jan 18 '19 at 17:22
  • Yes, pre-install had a very specific error about boost not being installed. – StudentOfScience Jan 18 '19 at 22:34

0 Answers0