“Ne peut pas trouver -lboost_filesystem”

3

Deluge est un client BitTorrent. J'essaie de le construire à partir des sources, car je n'ai pas le privilège de l'installer en tant que root.

J'utilise python setup.py build. Mais, le message suivant a échoué, pourquoi?

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 : informations sur la version et le système d'exploitation de gcc

$(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 est référencé par setup.py dans 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
la source
salut pouvez-vous nous dire quel système d'exploitation vous utilisez et également exécuter, $(which gcc) --versionet s'il vous plaît poster les résultats dans votre question. Vous pouvez également essayer de réinstaller gcc.
pneumatiques
@AlanTuring see edit 1 :) est ce problème de gcc?
hugemeow

Réponses:

3

Votre réponse réside dans le message d'erreur:

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

Spécifiquement cette ligne: / usr / bin / ld: impossible de trouver -lboost_filesystem . L'éditeur de liens n'a pas été en mesure de résoudre l'une des dépendances. Sa recherche de la boost_filesystembibliothèque et n'a pas été en mesure de la trouver. Vous devrez vous assurer que Boost est installé, et peut-être configurer la construction pour qu'elle pointe vers une installation locale de boost si vous devez l'installer localement.

lourd
la source
comment installer boost, si je ne suis pas root? Dois-je créer un boost à partir des sources et l'installer dans mon répertoire personnel? Existe-t-il des méthodes avec lesquelles je n'ai pas besoin de compiler à partir des sources lorsque je ne suis pas root?
hugemeow
1
Consultez la documentation sur le boost: boost.org/doc/libs/1_51_0/more/getting_started/… . Regardez plus précisément la section 5 sur l'utilisation des fichiers binaires du boost.
lourde