"cannot find -lboost_filesystem"

3

Deluge is a BitTorrent Client. I am trying to build it from source, since I don't have privilege to install it as root.

I am using python setup.py build. But, it failed following message, why?

copying deluge/ui/web/themes/images/gray/slider/slider-v-thumb.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/gray/slider
copying deluge/ui/web/themes/images/gray/slider/slider-thumb.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/gray/slider
copying deluge/ui/web/themes/images/gray/panel/top-bottom.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/gray/panel
copying deluge/ui/web/themes/images/gray/tabs/tab-strip-bg.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/gray/tabs
copying deluge/ui/web/themes/images/yourtheme/window/right-corners.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/window
copying deluge/ui/web/themes/images/yourtheme/window/left-corners.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/window
copying deluge/ui/web/themes/images/yourtheme/window/left-right.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/window
copying deluge/ui/web/themes/images/yourtheme/window/top-bottom.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/window
creating build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/slider
copying deluge/ui/web/themes/images/yourtheme/slider/slider-v-thumb.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/slider
copying deluge/ui/web/themes/images/yourtheme/slider/slider-thumb.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/slider
copying deluge/ui/web/themes/images/yourtheme/slider/slider-bg.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/slider
copying deluge/ui/web/themes/images/yourtheme/slider/slider-v-bg.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/slider
copying deluge/ui/web/themes/images/yourtheme/panel/top-bottom.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/panel
copying deluge/ui/web/themes/images/yourtheme/grid/hmenu-lock.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/grid
copying deluge/ui/web/themes/images/yourtheme/grid/hmenu-unlock.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/grid
copying deluge/ui/web/themes/images/yourtheme/tabs/tab-strip-bg.png -> build/lib.linux-x86_64-2.4/deluge/ui/web/themes/images/yourtheme/tabs
running build_ext
building 'libtorrent' extension
gcc -pthread -shared -L/usr/lib64 -L/opt/local/lib -lboost_filesystem -lboost_date_time -lboost_iostreams -lboost_python -lboost_thread -lpthread -lssl -lz -o build/lib.linux-x86_64-2.4/deluge/libtorrent.so
/usr/bin/ld: cannot find -lboost_filesystem
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
[mirror@innov deluge-1.3.5]$ echo $?
1

Edit 1: gcc version and os information

$(which gcc) --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


cat /etc/issue
CentOS release 5.7 (Final)
Kernel \r on an \m

Edit 2: boost is referenced by setup.py in deluge

114     if OS == "linux":
115         if os.path.exists(os.path.join(sysconfig.get_config_vars()['LIBDIR'], \
116             'libboost_filesystem-mt.so')):
117             boost_filesystem = "boost_filesystem-mt"
118         elif os.path.exists(os.path.join(sysconfig.get_config_vars()['LIBDIR'], \
119             'libboost_filesystem.so')):
120             boost_filesystem = "boost_filesystem"
121         if os.path.exists(os.path.join(sysconfig.get_config_vars()['LIBDIR'], \
122             'libboost_date_time-mt.so')):
123             boost_date_time = "boost_date_time-mt"
124         elif os.path.exists(os.path.join(sysconfig.get_config_vars()['LIBDIR'], \
125             'libboost_date_time.so')):
126             boost_date_time = "boost_date_time"
127         if os.path.exists(os.path.join(sysconfig.get_config_vars()['LIBDIR'], \
128             'libboost_thread-mt.so')):
129             boost_thread = "boost_thread-mt"
130         elif os.path.exists(os.path.join(sysconfig.get_config_vars()['LIBDIR'], \
131             'libboost_thread.so')):
132             boost_thread = "boost_thread"
133
134         if 'boost_filesystem' not in vars():
135             boost_filesystem = "boost_filesystem-mt"
136         if 'boost_date_time' not in vars():
137             boost_date_time = "boost_date_time-mt"
138         if 'boost_thread' not in vars():
139             boost_thread = "boost_thread-mt"
140
141     elif OS == "freebsd":
142         boost_filesystem = "boost_filesystem"
143         boost_date_time = "boost_date_time"
144         boost_thread = "boost_thread"
145     else:
146         boost_filesystem = "boost_filesystem-mt"
147         boost_date_time = "boost_date_time-mt"
148         boost_thread = "boost_thread-mt"
149
150     librariestype = [boost_filesystem, boost_date_time,
151             boost_thread, 'z', 'pthread', 'ssl', 'crypto']

hugemeow

Posted 2012-10-15T18:36:31.237

Reputation: 1 819

hi can you tell us what operating system you are using and also run, $(which gcc) --version and please post the results in your question. You could also try just re-installing gcc. – pneumatics – 2012-10-15T18:40:13.263

@AlanTuring see edit 1:) is this problem of gcc? – hugemeow – 2012-10-15T19:21:31.240

Answers

3

Your answer lies in the error message:

/usr/bin/ld: cannot find -lboost_filesystem
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

Specifically this line: /usr/bin/ld: cannot find -lboost_filesystem. The linker was not able to resolve one of the dependencies. Its looking for the boost_filesystem library and was not able to find it. You will need to ensure that Boost is installed, and perhaps configure the build to point to a local install of boost if you have to install it locally.

heavyd

Posted 2012-10-15T18:36:31.237

Reputation: 54 755

how to install boost, if i am not root? do i have to build boost from source and install it to my home directory? is there any methods with which i don't need to build from source when i am not root? – hugemeow – 2012-10-15T19:35:14.503

1

Check out the boost docs: http://www.boost.org/doc/libs/1_51_0/more/getting_started/unix-variants.html Specifically look at section 5 on using the boost binaries.

– heavyd – 2012-10-15T19:58:11.433