libtorrent在windows下编译过程

来源:互联网 发布:硕士小论文数据造假 编辑:程序博客网 时间:2024/06/11 16:55

http://www.cppblog.com/hblhs/archive/2010/03/03/108769.html

 

 

上一篇关于libtorrent的随笔是有错误的,我的项目里中文路径的问题主要是多字节编码和宽字节编码混合,这样在libtorrent里面面转换的时候怎么转都会有乱码,解决的办法是在传入路径的时候保证编码一致,基本上就没什么问题的。对于我的随笔给大家引起的不便深表歉意。

有很多朋友给我发邮件想要一份可以在windows编译的libtorrent,其实这个有一个很快捷的方法去得到一个可以用VC编译的libtorrent版本,在sf(sourceforge.net)上面搜索fdm,第一个就是,从SVN下载这个项目的源码,里面的bittorrent部分就是libtorrent了,而且还有一个封装libtorrent的dll项目,拿来用吧。不过我今天写的不是这种方式的获得。主要原因是这个项目所用的libtorrent不保证是最新版的,因为要在VC里面编译,所以会改很多东西,很可能已经失去了跨平台这个特性,这是我猜的,没去实践。
基于上面的原因,还是决定下载它的源码自己编译。在windows上编译linux下的源码主要是用mingw,所以首先要下载mingw,想了解这个东西的功能在网上找找资料吧。同上,在SF搜索MINGW,点第一个项目( 

MinGW - Minimalist GNU for Windows

  ),下载MinGW-5.1.6.exe(以后这个名字肯定会变,版本更新).把它放到你要放置MINGW的地方,运行,这是个在线安装工具,一路下一步,到select components to install的时候可以不选择java,ada,g77,objective的编译器,下一步到完成。接下来还要安装一个msys,这个就是在windows模拟一个linux的环境,用来调用mingw的东西(个人理解)。下载地址:http://mingw.org/wiki/MSYS 这里有下载的连接,因为在SF上版本更新之后下载地址可能会有变动,所以最好在这里来点它提供的地址的下载。Install MSYS 1.0.11(点前面的连接下载,版本更新之后名字可能会变). I usually install it in C:/msys/1.0, but you can use any directory that you prefer.  它这它里说可以用任何你喜欢的目录安装,但是根据我的实践,你最好还是按照我说的去安装,要不然编译不能通过不要怪我。下载完成之后运行,重要的是选择安装目录,假定你的MINGW安装目录为d:/librarys/MinGW,那你也要把MSYS安装到这个目录,注意,如果你是用鼠标选择到这个目录的它会自己在这个目录后面加上1.0,把这个1.0去掉,保证和MinGW的安装目录一致。安装完成的时候会弹出个命令窗口,按两次Y,回车之后会让你提供MinGW的安装目录,例如上面的路径,你需要输入d:/librarys/MinGW,这里的斜杠和windows下的相反。回车之后安装完成。
上边说的是在windows编译libtorrent需要的环境,环境准备好了还不能编译,还需要装备一些必要的库和工具。
1、make.exe,这个是可能会需要的,说它可能是因为在我多次安装编译环境的过程中只有一次提示没有这个命令,不知道哪的问题,不过也不用深究,提示没有下载一个就是了。
2、boost,这个库是必要的,而且安装需要费一些精力。如果你有现成的最好,没有的话有两种方法,a)、http://www.boostpro.com/download到这来下载个boost的下载工具,用它下载下来的boost是已经编译好的。b)、下载boost源码,在网上找一下boost的编译教程,自己编译。第二种方法稍有些麻烦,第一种方法最简单。在获得boost之后还有一步需要做,需要把boost安装目录下的boost目录移动到include/boost_1_39/目录下面,可能是因为新版的结构和老版的不一样。
3、ssl,安全套接层(Secure Sockets Layer,SSL)及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。上面的解释是从网上复制的,我也不十分了解,反正这个是要用到的。
上面提到的库和工具都可以在SF下载得到,1和3可以在一个叫MinGW-install的项目里下载到,解压后直接复制到MinGW的安装目录即可。
经过上面的准备就可以开始编译libtorrent了,又想起一点,下载libtorrent的时候要注意,一定要在它的官方地址下载,在SF上下载的我没有编译通过。下面是它的官方地址http://www.rasterbar.com/products/libtorrent/,他好像更新到google上面了。我下载的是 libtorrent-rasterbar-0.14.9.tar.gz 。解压,打开MSYS窗口,转到libtorrent解压之后的目录,输入命令,./configure --with-boost='/d/librarys/boost_1_39/' --with-boost-thread=boost_thread-vc80-mt-1_39  。这个命令可能跟你需要执行的不一样,根据你的boost版本的安装路径去改变。
如果没有提示错误,正常完成的话可以继续执行make进行编译,编译需要一些时间。如果没有错误会在libtorrent的子目录src/.libs下面发现libtorrent-rasterbar.a,近三百兆的一个库。
至此libtorrent编译完成
原创粉丝点击