./solvate: error while loading shared libraries: libboost_program_options-mt.so.1.38.0
This error means that the executable solvate could not find one of the Boost libraries that it requires. There are several common causes:
- the library is not present on the system at all, or
- the library is present, but not in a location that runtime linker searches, or
- the library is present, but for the wrong architecture
locate libboost_program_options-mt.so.1.38.0
/usr/lib/libboost_program_options-mt.so.1.38.0
This output tells us that neither 1, nor 2 are likely. Therefore cause 3 must be it.
On a 64-bit Ubuntu, /usr/lib is where 64-bit libraries are installed. You can verify that /usr/lib/libboost_program_options-mt.so.1.38.0 is a 64-bit library with:
file /usr/lib/libboost_program_options-mt.so.1.38.0
which should print:
/usr/lib/libboost_program_options-mt.so.1.38.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked ...
It must also be true that ./solvate is a 32-bit executable. You can confirm that with
file ./solvate
which should print
./solvate: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), ...
Finally, to solve your problem:
sudo apt-get install libboost-all-dev:i386