[libtorrent] linux 搭建 libtorrent 开发编译环境

2023-10-27

操作系统:ubuntu 20.04
(参考文档:http://libtorrent.org/building.html)
 

搭建 libtorrent 步骤:

一. 下载源码

    1. 从官网下载 libtorrent 源码
        git clone --recurse-submodules https://github.com/arvidn/libtorrent.git

    2. 安装 gcc
        sudo apt install gcc g++ automake autoconf git
 

二. 安装 boost 和搭建 BB2V

    1. 官网下载 boost
        https://www.boost.org/users/download/#live
        (本人下载的是 boost_1_75_0.tar.bz2 版本)

    2. 执行 bootstrap.sh
        cd boost_1_75_0
        ./bootstrap.sh --with-libraries=all --with-toolset=gcc
        如下图所示:
        

    3. 设置 BOOST_BUILD_PATH 环境变量
        gedit ~/.bashrc
        结尾添加:
        export BOOST_BUILD_PATH="$PATH:/home/dangwei/work/libtorrent/boost_1_75_0/tools/build"
        重启系统

    4. 新建 user-config.jam
        gedit ~/user-config.jam
        添加:
        using gcc ;
        (*注意,空格不能少)
        如下图所示:
        

    5. 新建 boost-build.jam
        cd boost_1_75_0
        gedit ./boost-build.jam
        添加:
        boost-build /home/dangwei/work/libtorrent/boost_1_75_0/tools/build/src ;
        (*注意,空格不能少)
        如下图所示:
        

    6. 编译 boost
        cd boost_1_75_0
        /b2 install --prefix=/usr/local
 

三. 安装 openssl

    1. 官网下载 openssl
         http://www.openssl.org/source/

    2. 解压
        tar -zxv openssl-1.1.1i.tar.gz

    3. 编译和安装
        cd openssl-1.1.1i/
        ./config --prefix=/usr/local/openssl
        sudo make install
 

四. 编译 libtorrent

    1. 编译 libtorrent
        cd libtorrent
        b2 install --prefix=/usr/local
        如下图所示:
        

    2. 编译 client-test
        cd examples
        b2 install --prefix=/usr/local
        如下图所示:
        

    3. 运行 client_test
        ./client_test
        路径如下图所示:
        
        

    4. 运行效果
        
        
        

 

大功告成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[libtorrent] linux 搭建 libtorrent 开发编译环境 的相关文章

  • 让 TeXstudio 在 linux mint 中工作:找不到文件“url.sty”。

    刚刚切换到 Linux Mint 以前的顽固 Windows 用户 我在尝试安装 TeXstudio 时遇到一些问题 Sudo apt get install texstudio 给了我一个正确的安装 至少 我是这么认为的 但是当我尝试构建
  • linux命令中括号的用途是什么[重复]

    这个问题在这里已经有答案了 我在 Linux 终端中运行以下命令 谁能告诉我 Linux 终端中括号和以下命令的用途是什么 echo GET HTTP 1 0 echo 主机 www google com echo 数控 www googl
  • C:如果文件描述符被删除,阻塞读取应该返回

    我正在以阻塞的方式从设备 文件描述符中读取 可能会发生这样的情况 在不同的线程中 设备被关闭并且文件描述符被删除 不幸的是 读取没有返回或注意到并且一直阻塞 作为一种解决方法 我可以使用 select 作为超时来执行 while 循环 如果
  • 配置:错误:无法运行C编译的程序

    我正在尝试使用 Debian Wheezy 操作系统在我的 Raspberry Pi 上安装不同的软件 当我运行尝试配置软件时 我尝试安装我得到此输出 checking for C compiler default output file
  • 在 Linux 上访问 main 之外的主要参数

    是否可以访问参数main在外面main 即在共享库构造函数中 在 Linux 上除了通过解析之外 proc self cmdline 您可以通过将构造函数放入 init array部分 功能在 init array 不像 init 使用相同
  • 推荐用于小型站点的 IRC 服务器 (ircd)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 情况 我想使用 IRC 机器人作为我正在研究的其他代码的通用通信接口 服务器硬件陈旧且内存不足 但运行在相对最新的 Debian GNU
  • 用于编辑 /etc/sudoers 文件的正则表达式模式

    我想删除 etc sudoers 文件中的 uncommnet 轮组 那么我应该使用什么正则表达式模式 cat etc sudoers Allows members of the sys group to run networking so
  • 未找到 Gem 命令

    我已经在 Ubuntu 10 10 32 位上安装了 gem apt get install gem y 但当我尝试跑步时 gem install something gem 我收到未找到命令的错误 bash gem command not
  • 查看 Linux 上的多核或多 CPU 利用率

    我有一个在 Linux 上运行的程序 我需要确定它如何利用所有 CPU 内核 有没有什么程序可以查看这些信息 跑过 top 命令并按下 1 查看各个核心
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 使用 ProcessBuilder 运行 shell 脚本

    我正在尝试使用 Java 和 ProcessBuilder 运行脚本 当我尝试运行时 我收到以下消息 error 2 没有这样的文件或目录 我不知道我做错了什么 但这是我的代码 ps 我尝试只执行不带参数的脚本 错误是相同的 String
  • 计算 TCP 重传次数

    我想知道在LINUX中是否有一种方法可以计算一个流中发生的TCP重传的次数 无论是在客户端还是服务器端 好像netstat s解决了我的目的
  • Python将文件从Linux复制到WIndows

    我正在构建一个网站 该网站有一个表单 可以捕获用户数据并在用户数据上运行一些cgi cgi 的第一步是需要将文件从 Linux Web 服务器复制到 Windows 计算机 服务器将使用 Active Directory 角色帐户作为复制凭
  • 如何反汇编、修改然后重新组装 Linux 可执行文件?

    无论如何 这可以做到吗 我使用过 objdump 但它不会产生我所知道的任何汇编器都可以接受的汇编输出 我希望能够更改可执行文件中的指令 然后对其进行测试 我认为没有任何可靠的方法可以做到这一点 机器代码格式非常复杂 比汇编文件还要复杂 实
  • 在非实时操作系统/内核上执行接近实时任务的最佳方法是什么?

    在一台 GNU Linux 机器上 如果想要执行 实时 亚毫秒级时间关键 任务 您几乎总是必须经历漫长 复杂且容易出现问题的内核补丁过程 以提供足够的支持 1 http en wikipedia org wiki RTLinux Backg
  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • 在嵌入式系统上将内核控制台发送到哪里?

    我正在开发一个嵌入式系统 该系统当前通过串行端口 1 上的控制台输出启动 Linux 使用启动加载程序中的控制台启动参数 然而 最终我们将使用这个串行端口 内核控制台输出的最佳解决方案是什么 dev null 能否以某种方式将其放在 pty
  • 为什么 call_usermodehelper 大多数时候都会失败?

    从内核模块中 我尝试使用 call usermodehelper 函数来执行可执行文件 sha1 该可执行文件将文件作为参数并将文件的 SHA1 哈希和写入另一个文件 名为输出 可执行文件完美运行 int result 1 name hom
  • aarch64 Linux 硬浮点或软浮点

    linux系统有arm64 有arm架构armv8 a 如何知道 Debian 运行的是硬浮动还是软浮动 符合 AAPCS64 GNU GCC for armv8仅提供硬浮动aarch64工具链 这与 armv7 a 的 GCC 不同 后者

随机推荐

  • 根目录/缺少执行权限x产生的两种错误

    Linux根目录缺少x权限 产生的两个错误 以root用户执行systemctl命令报权限相关问题 root hps2 systemctl stop hps manager pkttyagent 10364 WARNING Unable t
  • 国产技术迎来突破,14nm芯片横空出世,低代码也有好消息

    芯片 被称为工业时代的 粮食 小到手机手环 大到飞机轮船 几乎各个行业都不离开芯片的支持 其重要性不言而喻 而我国在这一领域一直较为薄弱 一 芯片之路坎坷 由于国内半导体芯片市场底子薄弱 没有主动权 一直过度依赖进口 他国就利用自身的基础优
  • Latex 问题汇总(持续更新)

    Latex 问题汇总 持续更新 写在前面 Latex安装链接 问题及解决办法 持续更新 1 如何手动安装宏包 2 如何改变WinEdt默认的pdf预览程序 写在前面 写这篇文章 是为了记录使用Latex期间遇到的一些问题和解决办法 还有一些
  • 【JAVA】定时任务之借阅到期自动催还

    该篇主要以定时任务为主 通知略为记录 一 定时任务逻辑代码 定时任务文件 TaskScheduling java package org springblade modules task import lombok extern slf4j
  • 什么是循环?Java中有哪些循环?

    在编程中 循环是一种重复执行一段代码块的结构 循环允许我们根据特定的条件多次执行相同的代码 从而提高代码的复用性和效率 在Java中 常见的循环结构有以下几种 1 for循环 for循环是一种在已知循环次数的情况下使用的循环结构 它由三个部
  • 在进行后台传值的时候注意----去空的处理

    经常在实际的开发过程中 需要避免将空值传递给后台 比如在实际开发过程中遇到的问题 eg 在进行查询功能的处理的时候 需要将获取到的各种查询条件传入后台 vue实际项目 所以这时候 会对页面上获取到的值进行去空的处理 对传入后台的值进行去空的
  • 硬盘分类详解

    一 按原理分类 机械硬盘 HDD 固态硬盘 SSD 以及混合硬盘 SSHD 1 机械硬盘 HDD 机械硬盘 HDD 是传统硬盘 为电脑主要的存储媒介之一 由一个或者多个铝制或者玻璃制成的磁性碟片 磁头 转轴 控制电机 磁头控制器 数据转换器
  • java 生成 静态页面_利用Java生成静态HMTL页面

    有时候需要生成静态的HTML页面以减小数据库与服务器的压力和负担 于是在网络上一阵狂搜 找到几篇相当不错的文章和一些相当有用的资料 为了方便 我整理在自己的BLOG 以供参考 在接下来的应用中 我自己想到另一种解决方案 就是通过Ajax S
  • 基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 模糊控制 Fuzzy Control 是
  • 什么时候使用useCallback和useMemo?

    目录 1 什么是useCallback和useMemo 2 为什么使用useCallback和useMemo 3 什么时候使用useCallback和useMemo 3 1 useCallback 3 2 useMemo 1 什么是useC
  • Kettle — 安装和部署

    前提 Kettle是纯Java编写的ETL开源工具 目前Kettle7和Kettle8都需要Java8或者以上才能正常运行 所以开运行Kettle前先检查Java环境是否正确配置 Java版本是否是8或者以上 Kettle安装 1 创建Ke
  • 操作系统--文件管理

    文件管理 目标 提高外存储空间利用率 什么是外存什么是内存 区别是什么 计算机的存储器也跟人们在演算过程中 运用大脑和纸 笔记本记忆的原理一样 我们把计算机内相当于大脑作用的存储器叫做 内存储器 也叫 内存 而相当于纸和笔记本作用的叫做 外
  • tensorflow: Could not load dynamic library ‘cudart64_101.dll‘ 解决办法

    问题描述 安装 tensorfolw gpu2 1 0 之后调用 显示 GPU False 不能调用GPU 在命令行中 import tensorflow 时显示 Could not load dynamic library cudart6
  • linux支持哪些因特网协议,Linux下因特网密钥交换协议设计与实现.doc

    Linux下因特网密钥交换协议设计与实现 Linux下因特网密钥交换协议设计与实现 摘要 介绍IPSec协议和因特网密钥交换协议 IKE 然后结合具体的科研工作 详细阐述在Linux操作系统上实现IKE协议的一种具体实现方案 解决如何在In
  • 递归算法最后返回值问题

    public String set byte val throws Exception Cluster cluster getRandomMaster writableCluster SSDB ssdb cluster getMaster
  • java8+jre配置_JAVA8 JDK/JRE环境配置教程

    下载JAVA JDK 1 从JAVA官网 下载 注意选择自己需要的版本 2 百度云盘 链接 https pan baidu com s 1deOFGN1xB0mgz6s2mTRXdA 提取码 ke97 安装JAVA JDK 打开下载的安装包
  • 【完全开源】小安派-SCP-2.4 无线中控器

    目录 一 概述 二 系统框图 三 2 4寸触摸液晶显示屏 四 外置音频模块 五 电源管理模块及五个按键 六 资料 一 概述 小安派 SCP 2 4用安信可Ai M61 32S模组作为控制核心 采用Type C接口进行供电 通过SPI接口连接
  • pip install github报错

    fatal unable to access https github com xxx OpenSSL SSL connect SSL ERROR SYSCALL in connection to github com 443 duplic
  • Qt Creator (C++) ui界面修改后运行不产生作用 解决办法

    xxx ui是xml文件 要生成ui xxx h才能编译 但qt修改了ui文件之后 有时候不会自动重新生成并覆盖原有的ui xxx h 即使清除然后重新构建项目也不会 uic o ui widget h widget ui 在ui文件所在的
  • [libtorrent] linux 搭建 libtorrent 开发编译环境

    操作系统 ubuntu 20 04 参考文档 http libtorrent org building html 搭建 libtorrent 步骤 一 下载源码 1 从官网下载 libtorrent 源码 git clone recurse