首先是编译安装libtorrent-rasterbar-1.1.3提示
lsd.cpp: In constructor ‘libtorrent::lsd::lsd(libtorrent::io_service&, const peer_callback_t&)’:
lsd.cpp:90:25: error: ‘uintptr_t’ is not a member of ‘boost’
, m_cookie((random() ^ boost::uintptr_t(this)) & 0x7fffffff)
^
lsd.cpp:90:25: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/stdint.h:9:0,
from /usr/include/inttypes.h:27,
from ../include/libtorrent/config.hpp:75,
from ../include/libtorrent/socket.hpp:36,
from ../include/libtorrent/lsd.hpp:36,
from lsd.cpp:33:
/usr/include/stdint.h:122:27: note: ‘uintptr_t’
typedef unsigned long int uintptr_t;
^
make[1]: *** [lsd.lo] Error 1
make[1]: Leaving directory `/root/libtorrent-rasterbar-1.1.3/src'
make: *** [all-recursive] Error 1
解决方法:
打开src文件夹,修改lsd.cpp中的boost::uintptr_t为uintptr_t即可解决。安装完成libtorrent-rasterbar后要把相关库文件进行软连接。
ln -s /usr/lib/libtorrent-rasterbar.so.8 /usr/lib64/libtorrent-rasterbar.so.8
ln -s /usr/lib/libtorrent-rasterbar.so.9 /usr/lib64/libtorrent-rasterbar.so.9
ln -s /usr/lib/pkgconfig/libtorrent-rasterbar.pc /usr/lib64/pkgconfig/libtorrent-rasterbar.pc
编译安装qbittorrent提示:
linking qbittorrent
session.o:session.cpp:function BitTorrent::Session::getPendingAlerts(std::vector<libtorrent::alert*, std::allocator<libtorrent::alert*> >&, unsigned long): error: undefined reference to 'libtorrent::session_handle::wait_for_alert(std::chrono::duration<long,
std::ratio<1l, 1000000000l> >)'
collect2: error: ld returned 1 exit status
distcc[27925] ERROR: compile (null) on localhost failed
Makefile:876: recipe for target 'qbittorrent' failed
make[1]: *** [qbittorrent] Error 1
make[1]: Leaving directory '/tmp/portage/net-p2p/qbittorrent-9999/work/qbittorrent-9999/src'
Makefile:42: recipe for target 'sub-src-make_first' failed
make: *** [sub-src-make_first] Error 2
安装libtorrent-rasterbaer时加上CXXFLAGS=-std=c++11即可解决:
./configure --prefix=/usr --disable-gui CPPFLAGS=-I/usr/include/qt5 --with-libgeoip=system CXXFLAGS=-std=c++11