New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make error: cannot find -lboost_python #376

Closed
IamGianluca opened this Issue Aug 21, 2014 · 9 comments

Comments

Projects
None yet
4 participants
@IamGianluca
Copy link

IamGianluca commented Aug 21, 2014

I'm trying to install Vowpal Wabbit on a Linux Mint 17 (Linux kernel 3.13) machine. I've cloned the git repo git clone git://github.com/JohnLangford/vowpal_wabbit.git and launch the make command. I've also installed libboost-program-options-dev and zlib1g-dev as advised on the tutorial.

Unfortunately I get this error message which I can't interpret.

$ make
Makefile:10: Using g++
cd vowpalwabbit; make -j 8 things
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/vowpalwabbit'
make[1]: Nothing to be done for `things'.
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/vowpalwabbit'
cd cluster; make
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/cluster'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/cluster'
cd library; make -j 8
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/library'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/library'
cd python; make
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/python'
g++ -I/usr/include/python2.7 -I /usr/include -fPIC -c pylibvw.cc -o pylibvw.o
g++ -shared -Wl,--export-dynamic pylibvw.o -L /usr/lib -L /usr/lib/x86_64-linux-gnu -L/usr/lib/python2.7/config -lpython2.7 -L ../vowpalwabbit -l vw -l allreduce -L /usr/lib -L /usr/lib/x86_64-linux-gnu -l boost_program_options -l pthread -l z -l boost_python -o pylibvw.so
/usr/bin/ld: cannot find -lboost_python
collect2: error: ld returned 1 exit status
make[1]: *** [pylibvw.so] Error 1
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/python'
make: *** [python] Error 2

I've installed on my system both Python 2.7.6 and python-dev.

@JohnLangford

This comment has been minimized.

Copy link
Collaborator

JohnLangford commented Aug 21, 2014

Install the boost python interface code. This is for the new python
bindings.

-John

On 08/21/2014 06:23 AM, Gianluca wrote:

I'm trying to install Vowpal Wabbit on a Linux Mint 17 (Linux kernel
3.13) machine. I've cloned the git repo |git clone
git://github.com/JohnLangford/vowpal_wabbit.git| and launch the |make|
command. I've also installed |libboost-program-options-dev| and
|zlib1g-dev| as advised on the tutorial.

Unfortunately I get this error message which I can't interpret.

|$ make
Makefile:10: Using g++
cd vowpalwabbit; make -j 8 things
make[1]: Entering directory /home/gianluca/Downloads/vowpal_wabbit/vowpalwabbit' make[1]: Nothing to be done forthings'.
make[1]: Leaving directory /home/gianluca/Downloads/vowpal_wabbit/vowpalwabbit' cd cluster; make make[1]: Entering directory/home/gianluca/Downloads/vowpal_wabbit/cluster'
make[1]: Nothing to be done for all'. make[1]: Leaving directory/home/gianluca/Downloads/vowpal_wabbit/cluster'
cd library; make -j 8
make[1]: Entering directory /home/gianluca/Downloads/vowpal_wabbit/library' make[1]: Nothing to be done forall'.
make[1]: Leaving directory /home/gianluca/Downloads/vowpal_wabbit/library' cd python; make make[1]: Entering directory/home/gianluca/Downloads/vowpal_wabbit/python'
g++ -I/usr/include/python2.7 -I /usr/include -fPIC -c pylibvw.cc -o pylibvw.o
g++ -shared -Wl,--export-dynamic pylibvw.o -L /usr/lib -L /usr/lib/x86_64-linux-gnu -L/usr/lib/python2.7/config -lpython2.7 -L ../vowpalwabbit -l vw -l allreduce -L /usr/lib -L /usr/lib/x86_64-linux-gnu -l boost_program_options -l pthread -l z -l boost_python -o pylibvw.so
/usr/bin/ld: cannot find -lboost_python
collect2: error: ld returned 1 exit status
make[1]: *** [pylibvw.so] Error 1
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/python'
make: *** [python] Error 2
|

I've installed on my system both Python 2.7.6 and |python-dev|.


Reply to this email directly or view it on GitHub
#376.

@IamGianluca

This comment has been minimized.

Copy link

IamGianluca commented Aug 21, 2014

Thanks for your reply John. I've installed libboost-python1.55.0 but still get the same error message during the make procedure.

@JohnLangford

This comment has been minimized.

Copy link
Collaborator

JohnLangford commented Aug 21, 2014

You need the -dev version of the package.

-John

On Thu, Aug 21, 2014 at 12:09 PM, Gianluca notifications@github.com wrote:

Thanks for your reply John. I've installed libboost-python1.55.0 but
still get the same error message during the make procedure.

Reply to this email directly or view it on GitHub
#376 (comment)
.

@IamGianluca

This comment has been minimized.

Copy link

IamGianluca commented Aug 21, 2014

Thank you John. Following your advice I've sorted out that error but got a new one. I've installed the package libboost-python1.55-dev, I hope it was the one you meant.

$ make
Makefile:10: Using g++
cd vowpalwabbit; make -j 8 things
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/vowpalwabbit'
make[1]: Nothing to be done for `things'.
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/vowpalwabbit'
cd cluster; make
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/cluster'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/cluster'
cd library; make -j 8
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/library'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/library'
cd python; make
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/python'
g++ -shared -Wl,--export-dynamic pylibvw.o -L /usr/lib -L /usr/lib/x86_64-linux-gnu -L/usr/lib/python2.7/config -lpython2.7 -L ../vowpalwabbit -l vw -l allreduce -L /usr/lib -L /usr/lib/x86_64-linux-gnu -l boost_program_options -l pthread -l z -l boost_python -o pylibvw.so
/usr/bin/ld: cannot find -lboost_program_options
collect2: error: ld returned 1 exit status
make[1]: *** [pylibvw.so] Error 1
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/python'
make: *** [python] Error 2
@arielf

This comment has been minimized.

Copy link
Collaborator

arielf commented Aug 21, 2014

Two things:

  1. Please don't install specific versions of libraries. Specifically: do not install Install libboost-python1.55-dev. Install libboost-python-dev instead. It should pull the current version automatically without creating a hard prerequisite on a specific version.

  2. You seem to be missing another dependency/prereq: libboost-program-options-dev

@IamGianluca

This comment has been minimized.

Copy link

IamGianluca commented Aug 22, 2014

I've used aptitude to solve the dependecies because install libboost-python-dev on apt-get was having troubles. I've also installed libboost-program-options-dev as suggested by arielf (thank you!).

The make command this time doesn't return errors:

$ make
Makefile:10: Using g++
cd vowpalwabbit; make -j 8 things
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/vowpalwabbit'
make[1]: Nothing to be done for `things'.
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/vowpalwabbit'
cd cluster; make
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/cluster'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/cluster'
cd library; make -j 8
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/library'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/library'
cd python; make
make[1]: Entering directory `/home/gianluca/Downloads/vowpal_wabbit/python'
g++ -shared -Wl,--export-dynamic pylibvw.o -L /usr/lib -L /usr/lib/x86_64-linux-gnu -L/usr/lib/python2.7/config -lpython2.7 -L ../vowpalwabbit -l vw -l allreduce -L /usr/lib -L /usr/lib/x86_64-linux-gnu -l boost_program_options -l pthread -l z -l boost_python -o pylibvw.so
make[1]: Leaving directory `/home/gianluca/Downloads/vowpal_wabbit/python'

Unfortunately make test stops at the 68th test:

$ make test
Makefile:10: Using g++
vw running test-suite...
(cd test && ./RunTests -d -fe -E 0.001 ../vowpalwabbit/vw ../vowpalwabbit/vw)
testing linux Testing vw: ../vowpalwabbit/vw
Testing lda: ../vowpalwabbit/vw
RunTests: '-D' to see any diff output
RunTests: '-o' to force overwrite references
RunTests: test 1: stderr OK
RunTests: test 2: stderr OK
RunTests: test 2: predict OK
RunTests: test 3: stderr OK
RunTests: test 4: stdout OK
RunTests: test 4: stderr OK
RunTests: test 5: minor (<0.001) precision differences ignored
RunTests: test 5: stderr OK
RunTests: test 6: stderr OK
RunTests: test 6: minor (<0.001) precision differences ignored
RunTests: test 6: predict OK
RunTests: test 7: stderr OK
RunTests: test 8: minor (<0.001) precision differences ignored
RunTests: test 8: stderr OK
RunTests: test 8: minor (<0.001) precision differences ignored
RunTests: test 8: predict OK
RunTests: test 9: stderr OK
RunTests: test 9: predict OK
RunTests: test 10: stderr OK
RunTests: test 10: predict OK
RunTests: test 11: stderr OK
RunTests: test 12: stderr OK
RunTests: test 13: stderr OK
RunTests: test 14: stdout OK
RunTests: test 14: stderr OK
RunTests: test 15: stdout OK
RunTests: test 15: stderr OK
RunTests: test 16: stdout OK
RunTests: test 16: minor (<0.001) precision differences ignored
RunTests: test 16: stderr OK
RunTests: test 17: minor (<0.001) precision differences ignored
RunTests: test 17: stderr OK
RunTests: test 18: stderr OK
RunTests: test 19: stderr OK
RunTests: test 20: minor (<0.001) precision differences ignored
RunTests: test 20: stderr OK
RunTests: test 20: predict OK
RunTests: test 21: minor (<0.001) precision differences ignored
RunTests: test 21: stderr OK
RunTests: test 22: stdout OK
RunTests: test 22: stderr OK
RunTests: test 23: stdout OK
RunTests: test 23: stderr OK
RunTests: test 24: minor (<0.001) precision differences ignored
RunTests: test 24: stderr OK
RunTests: test 25: stderr OK
RunTests: test 25: minor (<0.001) precision differences ignored
RunTests: test 25: predict OK
RunTests: test 26: stderr OK
RunTests: test 26: minor (<0.001) precision differences ignored
RunTests: test 26: predict OK
RunTests: test 27: stderr OK
RunTests: test 27: minor (<0.001) precision differences ignored
RunTests: test 27: predict OK
RunTests: test 28: stderr OK
RunTests: test 28: minor (<0.001) precision differences ignored
RunTests: test 28: predict OK
RunTests: test 29: stderr OK
RunTests: test 30: stderr OK
RunTests: test 31: stderr OK
RunTests: test 32: stderr OK
RunTests: test 33: stderr OK
RunTests: test 34: minor (<0.001) precision differences ignored
RunTests: test 34: stderr OK
RunTests: test 34: predict OK
RunTests: test 35: stderr OK
RunTests: test 36: stderr OK
RunTests: test 37: stderr OK
RunTests: test 38: stderr OK
RunTests: test 39: minor (<0.001) precision differences ignored
RunTests: test 39: stderr OK
RunTests: test 40: stderr OK
RunTests: test 41: stderr OK
RunTests: test 42: stderr OK
RunTests: test 43: stderr OK
RunTests: test 44: stderr OK
RunTests: test 44: predict OK
RunTests: test 45: stderr OK
RunTests: test 45: predict OK
RunTests: test 46: stderr OK
RunTests: test 46: predict OK
RunTests: test 47: stderr OK
RunTests: test 48: stderr OK
RunTests: test 48: predict OK
RunTests: test 49: stderr OK
RunTests: test 49: predict OK
RunTests: test 50: stderr OK
RunTests: test 50: predict OK
RunTests: test 51: stderr OK
RunTests: test 52: stderr OK
RunTests: test 52: predict OK
RunTests: test 53: stderr OK
RunTests: test 53: predict OK
RunTests: test 54: stderr OK
RunTests: test 55: stderr OK
RunTests: test 56: stderr OK
RunTests: test 56: predict OK
RunTests: test 57: stderr OK
RunTests: test 57: predict OK
RunTests: test 58: stderr OK
RunTests: test 58: minor (<0.001) precision differences ignored
RunTests: test 58: predict OK
RunTests: test 59: stderr OK
RunTests: test 60: stderr OK
RunTests: test 61: stderr OK
RunTests: test 61: minor (<0.001) precision differences ignored
RunTests: test 61: predict OK
RunTests: test 62: stderr OK
RunTests: test 63: stderr OK
RunTests: test 63: minor (<0.001) precision differences ignored
RunTests: test 63: predict OK
RunTests: test 64: stderr OK
RunTests: test 64: minor (<0.001) precision differences ignored
RunTests: test 64: predict OK
RunTests: test 65: stdout OK
RunTests: test 65: stderr OK
RunTests: test 66: stdout OK
RunTests: test 66: stderr OK
RunTests: test 67: stderr OK
RunTests: test 68: '/usr/bin/timeout 20 ../vowpalwabbit/vw -d train-sets/0001.multi.dat -f models/bs.vote.multi.model --bootstrap 4 --bs_type vote -p bs.vote.multi.predict --passes 3 -c -k' failed (exitcode=1)
final_regressor = models/bs.vote.multi.model
Num weight bits = 18
learning rate = 0.5
initial_t = 0
power_t = 0.5
decay_learning_rate = 1
predictions = bs.vote.multi.predict
creating cache_file = train-sets/0001.multi.dat.cache
Reading datafile = train-sets/0001.multi.dat
can't open: train-sets/0001.multi.dat, error = No such file or directory
vw: std::exception
@arielf

This comment has been minimized.

Copy link
Collaborator

arielf commented Aug 22, 2014

I see the same issue after pulling latest.

Looks like one of the recent fixes forgot to add the train-sets/0001.multi.dat file

@doxav can you add/push the missing file, please?

@JohnLangford

This comment has been minimized.

Copy link
Collaborator

JohnLangford commented Aug 23, 2014

This seems to be a problem with the travis test as well, as it claims to be
passing.

-John

On Fri, Aug 22, 2014 at 4:26 PM, Ariel Faigon notifications@github.com
wrote:

I see the same issue after pulling latest.

Looks like one of the recent fixes forgot to add the
train-sets/0001.multi.dat file

@doxav https://github.com/doxav can you add/push the missing file,
please?

Reply to this email directly or view it on GitHub
#376 (comment)
.

@doxav

This comment has been minimized.

Copy link

doxav commented Aug 23, 2014

Done. Travis is ok now. Sorry for the inconvenient.

Xavier

On Sat, Aug 23, 2014 at 3:53 AM, John notifications@github.com wrote:

This seems to be a problem with the travis test as well, as it claims to be
passing.

-John

On Fri, Aug 22, 2014 at 4:26 PM, Ariel Faigon notifications@github.com
wrote:

I see the same issue after pulling latest.

Looks like one of the recent fixes forgot to add the
train-sets/0001.multi.dat file

@doxav https://github.com/doxav can you add/push the missing file,
please?

Reply to this email directly or view it on GitHub
<
#376 (comment)

.


Reply to this email directly or view it on GitHub
#376 (comment)
.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment