当前位置: 首页 > news >正文

Ubuntu搭建环境Cmake-Libtorch-Torchvision-PCL-VTK-OpenCV

Ubuntu搭建环境Cmake-Libtorch-Torchvision-PCL-VTK-OpenCV

  • 安装Cmake
  • 安装libtorch
  • 安装torchvision
  • 安装PCL
  • 安装VTK
  • 安装OpenCV
    • 设置环境变量

仅供本人记录查阅使用

安装Cmake

Cmake下载地址

解压

进入目录会看到只有 bin doc man share三个文件夹,没有 bootstrap文件,因为新版本的好像是已经编译好的,所以只要加入path里面就可以在命令行直接使用命令了

#打开个人path配置
gedit ~/.bashrc
#在末尾添加如下的内容
export PATH=/home/ubuntu/cmake-3.28.0-linux-x86_64/bin:$PATH
#接着在终端source一下.bashrc文件让path立即生效
source ~/.bashrc
#安装完毕测试版本
cmake --version
#打开gui界面:
cmake-gui

安装libtorch

libtorch 是 PyTorch 的 C++ 前端库,用于在 C++ 环境中使用 PyTorch 的功能。 libtorch 提供了 C++ 接口,使开发人员可以在不同的 C++ 应用程序中集成 PyTorch 的功能,包括张量操作、神经网络构建、模型训练和推理等。通过 libtorch ,用户可以在 C++ 项目中利用 PyTorch 的强大功能,而无需依赖 Python 环境。

libtorch下载
解压直接使用

安装torchvision

需从GITHUB下载vision后编译生成
下载地址vision版本为最新

下载对应版本的pytorch和torchvision的.whl文件
whl文件

1.1 编译步骤
第一步:下载源代码并解压 vision-0.17.1.tar.gz
第三步:在源代码的文件夹下开始编译

mkdir build && cd build       # 创建一个build文件夹并进入
mkdir torchvision             #创建一个torchvision文件夹并进入
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=~/vision-0.17.1/build/torchvision ..

如出现以下错误:

CMake Error at CMakeLists.txt:24 (find_package): By not providing
“FindTorch.cmake” in CMAKE_MODULE_PATH this project has asked CMake
to find a package configuration file provided by “Torch”, but CMake
did not find one.

Could not find a package configuration file provided by “Torch” with
any of the following names:

TorchConfig.cmake
torch-config.cmake

Add the installation prefix of “Torch” to CMAKE_PREFIX_PATH or set
“Torch_DIR” to a directory containing one of the above files. If
“Torch” provides a separate development package or SDK, be sure it
has been installed.

解决方案
添加Torch环境
export Torch_DIR as env variable before cmake

export Torch_DIR=/home/ubuntu/pytorch/libtorch/share/cmake/Torch 
##继续
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=~/vision-0.17.1/build/torchvision ..
make -j8
sudo make install # 安装
make clean  # 删除编译产生的临时文件

安装PCL

GITHUB下载PCL
Point Cloud Library介绍
网站文档
学习网站https://www.yuque.com/huangzhongqing/pcl

编译PCL库
编译步骤
第一步:下载源代码并解压 pcl-pcl-1.14.0.tar.gz
第二步:安装PCL的依赖项

# 必要依赖
sudo apt update
sudo apt install git build-essential linux-libc-dev  
sudo apt install cmake
sudo apt install libusb-1.0-0-dev libusb-dev libudev-dev 
sudo apt install mpi-default-dev openmpi-bin openmpi-common 
sudo apt install libflann1.8 libflann-dev
sudo apt install libeigen3-dev
sudo apt install libboost-all-dev# 其他依赖
sudo apt install libqhull* libgtest-dev  
sudo apt install freeglut3-dev pkg-config  
sudo apt install libxmu-dev libxi-dev   
sudo apt install mono-complete   
sudo apt install libopenni-dev   
sudo apt install libopenni2-dev # x11
sudo apt install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev# openGL
sudo apt install build-essential libgl1-mesa-dev libglu1-mesa-dev# cmake
sudo apt install cmake  

ROS PCL多版本共存问题

查看版本

gedit /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfigVersion.cmake

编译另一个版本PCL注意:编译安装地址不是默认的/usr/local,而是自行指定的文件夹,这样不会产生任何冲突
使用时,在工程的CMakeLists.txt中需要指定使用哪个版本的PCL,如下方式:
解决:修改CMakeLists.txt

第三步:在源代码的文件夹 pcl-pcl-1.14.0下开始编译

mkdir build && cd build       # 创建一个build文件夹并进入
mkdir pcl1.14.0               #创建一个pcl1.14.0文件夹并进入
# cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=~/home/ubuntu/pcl1.14.0/install ..
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=~/pcl-pcl-1.14.0/build/pcl1.14.0 ..
# 编译选项解释:
# CMAKE_BUILD_TYPE=None  别的教程上都有这一个
# CMAKE_INSTALL_PREFIX   编译后安装的地址,可自行修改
# 其他值得注意的编译选项:
# BUILD_CUDA             编译CUDA功能,需要NVIDIA显卡和驱动支持
# BUILD_GPU              编译GPU功能
# VTK_DIR                VTK的安装目录,如果是自行安装的VTK需要定位到“VTK安装目录/lib/cmake/vtk-8.2”make -j8
sudo make install # 安装
make clean  # 删除编译产生的临时文件

第四步:把编译出来的文件目录移出到主目录使用(自行安排)

安装VTK

下载vtk
编译VTK库
编译步骤:
第一步:下载源代码并解压 VTK-9.3.0.tar.gz
第二步:在源代码的文件夹 VTK-9.3.0下开始编译

cd VTK-9.2.0
mkdir build && cd build
#配置 VTK 的构建选项,将 VTK 构建为共享库,启用渲染和独立应用程序支持,但禁用 Qt 和 Tk 支持,可根据需要调整选项
cmake -DCMAKE_INSTALL_PREFIX=~/VTK-9.3.0/build/VTK9.3.0 ..
make -j8
sudo make install

第三步:把编译出来的文件目录移出到主目录使用(自行安排)


安装OpenCV

OpenCV4.9
编译OpenCV库
编译步骤:
第一步:下载源代码并解压 opencv-4.9.0.tar.gz
第二步:在源代码的文件夹 opencv-4.9.0下开始编译

mkdir build && cd build       # 创建一个build文件夹并进入
mkdir opencv4.9.0               #创建一个opencv4.9.0文件夹并进入
# cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=~/home/ubuntu/pcl1.14.0/install ..
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=~/opencv-4.9.0/build/opencv4.9.0 ..
# 编译选项解释:
# CMAKE_BUILD_TYPE=None  别的教程上都有这一个
# CMAKE_INSTALL_PREFIX   编译后安装的地址,可自行修改
# 其他值得注意的编译选项:
# BUILD_CUDA             编译CUDA功能,需要NVIDIA显卡和驱动支持
# BUILD_GPU              编译GPU功能
# VTK_DIR                VTK的安装目录,如果是自行安装的VTK需要定位到“VTK安装目录/lib/cmake/vtk-8.2”make -j8
sudo make install # 安装
make clean  # 删除编译产生的临时文件

第三步:把编译出来的文件目录移出到主目录使用(自行安排)


设置环境变量

.bashrc

export Torch_DIR=/home/ubuntu/pytorch/libtorch/share/cmake/Torch 
export Vision_DIR=/home/ubuntu/pytorch/torchvision/share/cmake/TorchVision
export PCL_DIR=/home/ubuntu/pcl1.14.0/share/pcl-1.14
export VTK_DIR=/home/ubuntu/VTK9.3.0/lib/cmake/vtk-9.3
export OpenCV_DIR=/home/ubuntu/opencv4.9.0/lib/cmake/opencv4

相关文章:

Ubuntu搭建环境Cmake-Libtorch-Torchvision-PCL-VTK-OpenCV

Ubuntu搭建环境Cmake-Libtorch-Torchvision-PCL-VTK-OpenCV 安装Cmake安装libtorch安装torchvision安装PCL安装VTK安装OpenCV设置环境变量 仅供本人记录查阅使用 安装Cmake Cmake下载地址 解压 进入目录会看到只有 bin doc man share三个文件夹,没有 bootstrap文…...

分享多种mfc100u.dll丢失的解决方法(一键修复DLL丢失的方法)

在使用电脑过程中,我们经常会遇到一些陌生的DLL文件,例如mfc100u.dll。这些DLL文件是动态链接库(Dynamic Link Libraries)的缩写,它们包含了可以被多个程序共享的代码和数据。今天,我们将深入探讨mfc100u.d…...

Redis是单线程还是多线程?(面试题)

1、Redis5及之前是单线程版本 2、Redis6开始引入多线程版本(实际上是 单线程多线程 版本) Redis6及之前版本(单线程) Redis5及之前的版本使用的是 单线程,也就是说只有一个 worker队列,所有的读写操作都要…...

动态菜单设计

需求: 登录不同用户 显示不同的菜单 思路:根据用户id 左关联表 查询出对应的菜单选项 查询SQL select distinct-- 菜单表 去除重复记录sys_menu.id,sys_menu.parentId, sys_menu.name from -- 权限表sys_menu-- 角色与权限表 菜单表id 角色菜…...

Haproxy负载均衡介绍即部署

haproxy的原理: 提供高可用、负载均衡以及基于TCP(四层)和HTTP(七层)应用的代理,支持虚拟主机,开源可靠的一款软件。 适用于哪些负载特别大的web站点,这些站点通常又需要回话保持和七…...

基于大语言模型的云故障根因分析|顶会EuroSys24论文

*马明华 微软主管研究员 2021年CCF国际AIOps挑战赛程序委员会主席(第四届) 2021年博士毕业于清华大学,2020年在佐治亚理工学院做访问学者。主要研究方向是智能运维(AIOps)、软件可靠性。近年来在ICSE、FSE、ATC、EuroS…...

Windows直接运行python程序

Windows直接运行python程序 一、新建bat脚本二、新建vbs脚本 一、新建bat脚本 新建bat批处理脚本,写入以下内容 echo off call conda activate pytorch python app.pyecho off:在此语句后所有运行的命令都不显示命令行本身,但是本身的指令是…...

经典应用丨光伏行业扫码追溯新标杆,海康机器人AI智能读码器!

去年,光伏发电行业持续高速发展,我国仅在前九个月累计装机521.08GW,同比增长达到45.3%,已成为第二大电源类型超过水电。根据《2023中国与全球光伏发展白皮书》预测,到2030年,中国能够实现国家规划的风电和光…...

逆流而上的选择-积极生活,逆流而上

首先请大家看一个故事 李明坐在公司的开放式办公区,耳边是键盘敲击声的交响乐,眼前是一行行跳跃的代码。他的眼神有些恍惚,显示器的蓝光在他眼镜上反射出时代的光芒,这光芒既耀眼又刺眼。他即将35岁,在这个年纪&#x…...

SpringMVC基础Controller

文章目录 Controller 的编写和配置1. Controller 注解类型2. RequestMapping 注解类型3. 编写请求方法4. 请求参数和路径变量 Controller 的编写和配置 Controller 注解和 RequestMapping 注解是 Spring MVC 最重要的两个注解。 使用基于注解的控制器的优点如下: …...

spark 参数

spark.yarn.executor.memoryOverhead 默认值是384M Configuration - Spark 3.5.1 Documentation...

java调用jacob进行文件转换ppt转pdf或者png

java调用jacob进行文件转换ppt转pdf或者png 前情提要 最近项目上,遇到一个复杂的ppt,最终要求是要将ppt每一页转成图片原本这个是不难,网上一搜一大堆案例,外加我本身也比较精通aspose,那还不是分分钟搞定。结果就是…...

鸿蒙HarmonyOS应用开发之使用DevEco Studio模板构建NDK工程

NDK通过CMake和Ninja编译应用的C/C代码,编译过程如下图所示。 核心编译过程如下: 根据CMake配置脚本以及build-profile.json5中配置的externalNativeOptions构建参数,与缓存中的配置比对后,生成CMake命令并执行CMake。 执行Ninja…...

uniapp流浪动物救助小程序Java宠物领养小程序springboot

uniapp流浪动物救助小程序Java宠物领养小程序springboot 代码40块,需要的私聊 前台基于uniapp小程序 后台管理基于springbootvue前后端分离项目 开发语言:Java 框架:springboot vue JDK版本:JDK1.8(或11&#xf…...

工程企业的未来选择:Java版工程项目管理系统平台与数字化管理的融合

在现代化的工程项目管理中,一套功能全面、操作便捷的系统至关重要。本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统,结合Vue和ElementUI实现前后端分离。该系统涵盖了项目管理、合同管理、预警管理、竣工管理、质量管理等多个…...

Vue使用el-statistic和el-card显示大屏中的统计数据

​ 一、页面内容&#xff1a; <el-row :gutter"20"><el-col :span"6"><el-card class"box-card"><div><el-statisticgroup-separator",":precision"2":value"value2":title"tit…...

12.2024

如下图所示&#xff0c;小明用从1开始的正整数“蛇形”填充无限大的矩阵。 1 2 6 7 15 16 28 29... 35 8 14 17 27 30... 4 9 13 18 26 31... 10 12 19 25 32... 11 20 24 33... 21 23 34.. 22 35... 容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20行第20列的数是多少…...

【学习心得】Jupyter常用操作与魔法方法

一、安装与打开 Jupyter是什么我就不啰嗦了&#xff0c;直接安装&#xff1a; pip install jupyter 安装完后&#xff0c;在你想要打开的项目路径下&#xff0c;唤出CMD执行下面命令就可以使用jupyter notebook了 jupyter notebook 也可以用更加好用的jupyter lab&#xff0…...

Linux命令别名

别名是命令的快捷方式。对于需要经常执行&#xff0c;并需要很长时间输入的长命令创建快捷方式很有用。 临时修改 语法&#xff1a; alias 别名原命令 [选项] [参数][rootdd ~]# alias cdtcd /test #切换到/test下的快捷命令 删除别名&#xff1a; unalias 别名 unalias cd…...

Docker和 Containerd 的区别

自 Docker 开启了使用容器的爆发式增长&#xff0c;有越来越多的工具和标准来帮助管理和使用这项容器化技术&#xff0c;与此同时也造成了有很多术语让人感到困惑。 容器生态系统 容器生态系统是由许多令人兴奋的技术、大量的专业术语和大公司相互争斗组成的。 幸运的是&…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...