Deluge 是一个 BitTorrent 客户端。我尝试从源代码构建它,因为我没有权限以 root 身份安装它。
我正在使用python setup.py build
。但是,它失败了,如下所示,为什么?
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
编辑1: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
编辑2: boost 被 deluge 中的 setup.py 引用
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']
答案1
您的答案就在错误信息中:
/usr/bin/ld: cannot find -lboost_filesystem
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
具体来说这一行:/usr/bin/ld:找不到 -lboost_filesystem。链接器无法解析其中一个依赖项。它正在寻找boost_filesystem
库,但找不到它。您需要确保促进已安装,并且如果您必须在本地安装它,也许可以将构建配置为指向 boost 的本地安装。