windows上编译,使用libtorrent

花了几天的时间,查找了很多资料,基本上没有找到能够编译成功教程

特留下此篇博客已做参考:

 

windows编译libtorrent需要依赖于OpenSSL库,和boost库,建议直接下载

一. 编译OpenSSL的库

    编译OpenSSL网上教程一大堆,自己去找,我这里不介绍

     编译好的OpenSSL库下载地址

二. 编译boost库

     参考地址:https://blog.csdn.net/z345436330/article/details/89054733

三. 编译libtorrent库(编译好的库下载地址)

         a. 下载libtorrent源码

              我试了github上的源码,基本上在Windows上面都编译不过去,Linux可以,网上查资料说有Windows专用编译的版本

http://code.google.com/p/libtorrent/downloads/list,这个网站好像是打不开。提供我自己编译所用的源码点击下载。

         b. 创建vs工程编译libtorrent库(我这里使用的是vs2013 x64版本)

新建win32项目,设置如下

         c. 解压下载的源码,将include和src两个文件夹全部拷贝到新建的项目中

         d. 在项目中添加头文件和源文件(直接复制文件夹粘贴进去)

     e. 修改配置文件(右键属性页)

1. 活动平台x64

2. 包含库头文件和库目录(boost 头文件和库文件, OpenSSL头文件和库文件, libtorrrent头文件)

3. 修改预处理器

WIN32
_DEBUG
_LIB
_WIN32_WINNT=0x0501
WIN32_LEAN_AND_MEAN
_CRT_SECURE_NO_WARNINGS
BOOST_ASIO_ENABLE_CANCELIO
BOOST_ASIO_DYN_LINK
TORRENT_USE_OPENSSL

4. 运行库,选择MTD

5. 附加依赖项

libeay64.lib
ssleay64.lib

6. 开始编译编译设置为x64

 

四 libtorrrent的使用

1. 新建一个win32项目....................

2. 添加main函数

3. 配置属性

和编译libtorrrent的配置一样(平台x64,boost头文件,boost库文件,OpenSSL头文件, OpenSSL库文件, libtorrrent头文件 )

**********libtorrrent库文件, 附加依赖项(libtorrrent.lib), 多线程调试MTd

 

 

*****************************************************************************************************************************************

// 提示报错无法链接boost::asio ,解决方法

手动添加asio.cpp文件,文件内容如下:

// builds all boost.asio source as a separate compilation unit
#ifndef BOOST_ASIO_SOURCE
#define BOOST_ASIO_SOURCE


#include <boost/asio/impl/src.hpp>

// for openssl.
#if BOOST_VERSION >= 104610
#include <boost/asio/ssl/impl/src.hpp>
#endif
#endif

运行成功如下:

 

基于libtorrent写的下载器:https://github.com/ZhouHanyu18/sBittorrent

有其他问题的可以在下面留言

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
使用 libtorrent4j 下载种子,您需要进行以下操作: 1. 导入 libtorrent4j 库和相关的模块,例如: ```java import com.frostwire.jlibtorrent.*; ``` 2. 创建一个 `SessionManager` 对象,并设置一些参数,例如: ```java SettingsPack settings = new SettingsPack(); settings.setInteger(SettingsPack.int_types.download_rate_limit.swigValue(), 1000); settings.setInteger(SettingsPack.int_types.upload_rate_limit.swigValue(), 1000); SessionManager s = new SessionManager(); s.applySettings(settings); s.start(); ``` 在这个例子中,我们设置了最大下载速度和上传速度为 1000 B/s,并创建了一个 `SessionManager` 对象。然后,我们使用 `applySettings` 方法将设置应用于会话管理器,并使用 `start` 方法启动会话管理器。 3. 创建一个 `TorrentHandle` 对象,并通过 `addTorrentInfo` 方法将种子添加到会话管理器中,例如: ```java String torrentFilePath = "/path/to/torrent/file"; byte[] torrentFileBytes = Files.readAllBytes(Paths.get(torrentFilePath)); TorrentInfo torrentInfo = new TorrentInfo(torrentFileBytes); TorrentHandle torrentHandle = s.getTorrents().addTorrentInfo(torrentInfo); ``` 在这个例子中,我们将种子文件读入 `byte` 数组中,并使用 `TorrentInfo` 对象解析种子文件的元数据。然后,我们使用 `addTorrentInfo` 方法将元数据添加到会话管理器中,并获得一个 `TorrentHandle` 对象,用于管理下载进程。 4. 启动下载进程,例如: ```java torrentHandle.resume(); ``` 在这个例子中,我们使用 `resume` 方法启动下载进程。 5. 等待下载完成,并关闭会话管理器,例如: ```java while (!torrentHandle.isFinished()) { System.out.println("Downloaded: " + torrentHandle.getStatus().getProgress() * 100 + "%"); Thread.sleep(1000); } s.stop(); ``` 在这个例子中,我们使用 `isFinished` 方法检查下载进程是否完成,如果没有完成,则打印下载进度,并使用 `Thread.sleep` 方法暂停 1 秒钟。一旦下载完成,我们使用 `stop` 方法关闭会话管理器。 这就是使用 libtorrent4j 下载种子的基本步骤。请注意,这只是一个简单的例子,您可能需要根据具体情况进行更多的设置和调整。
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值