shendurelab / LACHESIS

The LACHESIS software, as described in Nature Biotechnology (http://dx.doi.org/10.1038/nbt.2727)
Other
75 stars 33 forks source link

Testing out Lachesis on a sample dataset: error while loading shared libraries: libboost_system.so.1.62.0 #23

Closed rcosentino closed 7 years ago

rcosentino commented 7 years ago

Hi,

when I run the test

$ ./Lachesis INIs/test_case.ini

I get the following error message: ./Lachesis: error while loading shared libraries: libboost_system.so.1.62.0: cannot open shared object file: No such file or directory

I am using boost 1.6.2

It took me a while to be able to compile Lachesis, to make it compile i did the following:

removed "-std=c++11" option from CFLAGS in the Makefile of "include/markov" folder as suggested in another issue post. Then I realized that I had to build the boost libraries, to do that I ran in the "boost_1_62_0" folder:

$ ./boostrap.sh --prefix=/my_path_to/boost_1_62_0

$ ./b2 install

this generated a "lib" and "include" folder in the "boost_1_62_0" folder

then, to satisfy the directory structure required by lachesis i made a "stage" folder in "boost_1_62_0" folder and made a link to the newly generated "lib" folder (as it is also suggested in another issue post):

$ ln -s /my_path_to/boost_1_62_0/lib /my_path_to/boost_1_62_0/stage/lib

Set the required environmental variables:

$ export LACHESIS_SAMTOOLS_DIR=/my_path_to/samtools-0.1.19/

$ export LACHESIS_BOOST_DIR=/my_path_to/boost_1_62_0/

Changed the memory limit to 10 Mb:

$ ulimit -s 10240

Then I ran make in the lachesis folder, and it compiled correctly, although many warning messages appeared. It seems to me that it is not looking for the library into the correct folder but, as I understand, the library is in the correct place: "my_path_to/boost_1_62_0/stage/lib/libboost_system.so.1.62.0"

Could somebody help me?

I am running this in a Computer with Ubuntu 15.10 ,16GB of memory, gcc 5.2.1 , zlib 1.2.8 , samtools 0.1.19

rcosentino commented 7 years ago

Hi, I solved following a suggestion here by explicitly telling the dynamic linker to look for my boost libraries where they are with the LD_LIBRARY_PATH environment variable:

$ LD_LIBRARY_PATH="/my_path_to/boost_1_62_0/stage/lib" ./Lachesis INIs/test_case.ini

(but I still do not understand what I have done wrong that it is not looking in there if i set correctly the LACHESIS_BOOST_DIR environmental library)