首先是编译安装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