Ubuntu上安装Boost C++以及Boost.Python的过程和经验

2023-11-06

由于实验的需要,想运行一下这个项目:https://github.com/luckiezhou/DynamicTriad,和所有科研相关类的repo一样,要真正用起来还得填很多坑。不得不说,这个repo的作者已经足够认真负责,但是要跑起来还是不容易,个人感觉,machine learning方面的实验代码,能真正顺利直接跑起来的,不超过20%。

在这个repo第一个dependency就花了些时间,由于需要用到Boost.Python,所以我简单学习了一下。Boost C++被称为C++标准库的后备,是C++标准化进程的开发引擎之一。Boost.Python顾名思义就是C++和Python的接口咯。按照这个repo作者给的链接,似乎应该从这里开始:https://www.boost.org/doc/libs/1_65_1/libs/python/doc/html/building/installing_boost_python_on_your_.html,这个页面就有点让人摸不着头脑了:

you might want to supply the --with-python argument to bjam (or the --with-libraries=python argument to configure)

bjam和configure都是些什么鬼??没办法,老老实实看这里:https://www.boost.org/doc/libs/1_74_0/more/getting_started/unix-variants.html

其实boost的文档也写得特别细心和体贴了!按照这个页面,我们要进行如下操作:

1. 下载boost_1_73_0.tar.bz2.

2. 在文件夹下(例如我把上面这个压缩包放在了:Boost.Python这个目录下),运行:

tar --bzip2 -xf boost_1_73_0.tar.bz2

虽然说Boost文档已经写得很好了,但是还有些思路清奇的地方:按道理来说,我们解压以后肯定是进入到目录下执行一些命令啊,可文档洋洋洒洒讲了些乱七八糟的东西:3   Header-Only Libraries,4   Build a Simple Program Using Boost,不是说这些不重要,但完全可以放到后面再讲啊。再往下看终于看到了:5   Prepare to Use a Boost Library Binary

3. 我们进入到解压目录,运行:

./bootstrap.sh --with-libraries=python

之所以带后面这个,是因为这一步介绍到:consider using the --show-libraries and --with-libraries=library-name-list options to limit the long wait you'll experience if you build everything.

呵呵,所以和前面页面中说的bjam和configure还是不一样啊。

4. 上一步运行完之后,就会在目录下产生:project-config.jam,bootstrap.log,b2三个文件,再运行:

sudo ./b2 install

这步运行完之后,官方文档就又开始发散了,开始讲:5.2   Or, Build Custom Binaries,6   Link Your Program to a Boost Library,也许对开发人员很重要,但是对我们来讲,就是想要把Boost.Python用起来,所以参考一些朋友的博客:https://www.cnblogs.com/LyndonYoung/articles/5288618.htmlhttps://www.cnblogs.com/gaowengang/p/8994370.html

5. 输入:

cd /etc/profile.d

到这个目录下,然后创建一个文件boost.sh:

sudo touch boost.sh

我们用gedit打开并编辑这个文件:

sudo gedit boost.sh

在文件中输入以下内容:

#!/bin/sh
BOOST_ROOT=/home/%我的用户名%/Boost.Python/boost_1_73_0
BOOST_INCLUDE=/usr/local/include/boost
BOOST_LIB=/usr/local/lib
export BOOST_INCLUDE BOOST_LIB BOOST_ROOT

保存后关闭,依次执行:

sudo chmod +x boost.sh

source boost.sh

这些步骤的主要目的就是设置环境变量。到此为止,基本上把Boost.Python装好了,后面继续填这个repo剩下的坑。就先总结这么多。

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

Ubuntu上安装Boost C++以及Boost.Python的过程和经验 的相关文章

  • 物理磁盘的四种使用方式

    一 物理磁盘整个直接使用 把整个物理磁盘直接格式话成文件系统 然后mount 二 通过分区使用 把整个物理磁盘通过fdisk dev sdx这样分区 通过格式化各个分区来使用磁盘 三 通过逻辑卷使用 可以把整个物理磁盘作为一个物理卷pvcr
  • 电子科技大学软件工程期末复习笔记(一):概论

    目录 前言 重点一览 软件的定义 软件的特点 软件的双重作用 软件危机 软件工程的概念 软件工程的目标与原则 软件工程的一些误解 本章小结 前言 2022年底疫情彻底放开 开始自愿返乡 大面积传染开始 在校生几乎无一幸免 因为自愿返乡后只能
  • The Code is successfully generatd...使用stm32cude生成工程时报错

    找了一下午的方法 在此总结 1 路径问题 路径不能包含中文以及空格字符 如E 举例 测试 以及路径不能太深 本人未测试 不是我的情况 2 金山等即时翻译软件未关闭 论坛上看到 本人未测试 3 版本问题 本人测试通过 有的人说是jdk版本太高

随机推荐

  • 2019年底总结

    一年很快 又到改写总结的时候了 回顾这一年 2019年办成了很多的事情 在此借用这句 忆往昔 年少轻狂时 俱远矣 看今日 而立之年始 继拼之 表达下吧 看看2018年的计划 发现大部分自己都在不自不觉中做了 时事 经济领域 用平时的碎片时间
  • C语言快速排序,以及注意点。

    快速排序尤其适用于对大数据的排序 它的高速和高效无愧于 快速 两个字 虽然说它是 最常用 的 可对于初学者而言 用它的人却非常少 因为虽然很快 但它也是逻辑最复杂 最难理解的算法 因为快速排序要用到递归和函数调用 快速排序所采用的思想是分治
  • SpringBoot2.0.5.RELEASE 整合Activiti7启动后不创建表

    环境描述 SpringBoot版本 2 0 5 Activiti版本 7 0 0 Beta3 MySQL版本 8 011 解决办法 在数据库访问的地址上添加配置 nullCatalogMeansCurrent true 问题原因 从mysq
  • java输出相对路径

    在 Java 中 您可以使用 java io File 类来获取文件或目录的相对路径 下面是一个简单的示例 展示了如何使用 File 类获取文件或目录的相对路径 import java io File public class Main p
  • QProgressDialog进度条类

    QProgressDialog 常用API 简单的使用 QProgressDialog类是QDialog的子类 通过这个类我们可以得到一个带进度条的对话框窗口 常用API 构造函数 参数 labelText 对话框中显示的提示信息 canc
  • Centos8安装英伟达显卡驱动并通过docker部署深度学习环境

    20201107 每个人的机器和实际需要的环境都不一样 本文只是提供了在自己实验室centos8上的部署过程 部署过程中 没有什么问题 请谨慎参考本篇文章 以免浪费宝贵时间 0 引言 之前的时候 在实验室的深度学习服务器上安装深度学习的环境
  • NStepSCAN和FSCAN

    NStepSCAN 在最短寻道时间优先 SSTF 扫描算法 SCAN 和循环扫描算法 CSCAN 中 都可能出现磁臂停留在某处不动的情况 例如 有一个或几个进程对某一磁道有较高的访问频率 这些进程反复请求对某一磁道的I O操作 从而垄断了整
  • Git将其他分支合并至主分支

    主要思想 把分支代码合并到master 合给谁 就先切换到谁的分支 1 当前分支是dev 开发完成后 需要合并到master分支 先把该提交的提交 需要push的push完成后 再切换分支 否则也会告诉你要提交本地代码才可以切换分支 2 本
  • 6. JVM调优工具详解及调优实战

    JVM性能调优 1 前置启动程序 1 1 Jmap 1 1 1 Jmap查询内存信息 1 1 2 Jmap查询堆信息 1 1 3 jmap查询堆内存dump 1 2 Jstack 1 3 远程连接jvisualvm 1 4 jstack找出
  • Mongo 数据导出、导入

    1 下载 mongodb database tools windows 2 解压 打开window Powershell 或 doc命令窗口 使用命令进入解压后的文件夹 3 导出数据命令 mongodump exe h 127 0 0 1
  • 2021-06-23 各种经典卷积神经网络总结

    各种经典卷积神经网络总结 1 原始卷积 Vanilla Convolution 2 分组卷积 Group convolution 2 1 组卷积案例1 2 2 组卷积案例2 Resnext 2 3 ShuffleNet 3 转置卷积 Tra
  • 遥感变化检测综述 Change Detection Based on Artificial Intelligence:State-of-the-Art and Change

    遥感变化检测综述 Change Detection Based on Artificial Intelligence State of the Art and Change 现存的变化检测综述主要专注于在多时态高光谱图像 HSIs 和高空间
  • 终极秘密---------windows里藏着9.11的惊天大密码

    终极秘密 windows里藏着9 11的惊天大密码 神秘连锁 密码 泄漏恐怖分子袭美玄机 方法 用WORD 编辑文档输入Q33NY 必须大写 这是9 11撞击世界贸易中心的沙特勇士们乘坐的航班号 第三 将字体大小改到72 最后 将字体转成
  • JS实现简单的购物车

    以下是一个基本的 JS 购物车实现 由于是实现基本的功能 就不弄得多复杂了 代码可以直接Ctrl c v 大家可以试一试 HTML div h2 产品列表 h2 ul li h3 商品1 h3 p 价格 10元 p li ul div
  • SVN 报错:does not support the HTTP/DAV protocol

    原因 我是直接粘贴了上面的网址 而正确做法应该是 点击checkout 复制这个里面的url
  • 图像色彩编码YUV(YCbCr)的基本知识

    参考地址 https www cnblogs com lifan3a articles 4930182 html YUV与YCbCr的定义 YCbCr是DVD 摄像机 数字电视等消费类视频产品中 常用的色彩编码方案 YCbCr 有时会称为
  • No Such Property: Scope For Class: Com.android.build.gradle.internal.variant.ApplicationVariantData

    No Such Property Scope For Class Com android build gradle internal variant ApplicationVariantData 集成360开源的Replugin出现了这个问
  • 软件测试-测试用例的经典例子

    一 等价类划分问 某程序规定 输入三个整数 a b c分别作为三边的边长构成三角形 通过程序判定所构成的三角形的类型 当此三角形为一般三角形 等腰三角形及等边三角形时 分别作计算 用等价类划分方法为该程序进行测试用例设计 三角形问题的复杂之
  • python os模块示例讲解

    os模块包含普遍的操作系统功能 提供了丰富的方法用来处理文件和目录以及一些系统相关的信息的获取 利用这个模块可以写出与平台无关的程序 比如就是使用os sep可以取代操作系统特定的路径分割符 本模块提供一种可移植的方式来使用依赖于操作系统的
  • Ubuntu上安装Boost C++以及Boost.Python的过程和经验

    由于实验的需要 想运行一下这个项目 https github com luckiezhou DynamicTriad 和所有科研相关类的repo一样 要真正用起来还得填很多坑 不得不说 这个repo的作者已经足够认真负责 但是要跑起来还是不