编译libtorrent,花了两天时间,才找到合适版本并编译例子通过

http://www.doserver.net/post/libtorrent-1.php

 

操作系统:Linux AS4
参与编译库:boost_1_36_0.tar.gz,libtorrent-rasterbar-0.14.1.tar.gz,hrktorrent-0.3.4.tar.bz2
另外还有BNBT的版本
另外注意编译以上库之后需要执行ldconfig,以重新加载动态链接库路径。
在libtorrent选型问题
     目前google搜索会存在两个版本的libtorrent。而选择正确的版本对于开发肯定会有帮助。第一天基本上就是因为版本选择的问题导致,当然或许是我的技术不够到家,而无法编译第一个版本。
     在http://libtorrent.rakshasa.no提供的版本我怎么也无法编译通过。最后也没有搞清楚原因。后来在网上找到有人提到libtorrent有两个,是不同的团队维护的。让我惊诧!

     寻找到第二个版本,http://libtorrent.sourceforge.net,开始下载编译,第一遍很顺利编译通过。开始编译例子,怎么也不行,迟迟也找不到错误!郁闷中不断的更换版本,更换boost,更换libtorrent.最后找到一个客户端hrktorrent.

     依然出错,但是错误是没有定义boost.
     非常诧异!
     开始依靠迷糊中的经验试试,修改hrktorrent的编译配置文件vars.mk

  1.      PREFIX          = /usr   


继续编译,依然不行,还是没有找到boost.
死马活马医治,
将/usr/include/boost_1_36_0/boost拷贝到/usr/include/boost

错误变成pkg-config没有找到libtorrent。
继续测试中,将/usr/lib/pkgconfig/libtorrent-rasterbar.pc 拷贝一个 /usr/lib/pkgconfig/llibtorrent.pc

编译.......................

通过了!perfect.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 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 下载种子的基本步骤。请注意,这只是一个简单的例子,您可能需要根据具体情况进行更多的设置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值