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.cmakeAdd 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…...
工程企业的未来选择:Java版工程项目管理系统平台与数字化管理的融合
在现代化的工程项目管理中,一套功能全面、操作便捷的系统至关重要。本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统,结合Vue和ElementUI实现前后端分离。该系统涵盖了项目管理、合同管理、预警管理、竣工管理、质量管理等多个…...
Vue使用el-statistic和el-card显示大屏中的统计数据
一、页面内容: <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
如下图所示,小明用从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是什么我就不啰嗦了,直接安装: pip install jupyter 安装完后,在你想要打开的项目路径下,唤出CMD执行下面命令就可以使用jupyter notebook了 jupyter notebook 也可以用更加好用的jupyter lab࿰…...
Linux命令别名
别名是命令的快捷方式。对于需要经常执行,并需要很长时间输入的长命令创建快捷方式很有用。 临时修改 语法: alias 别名原命令 [选项] [参数][rootdd ~]# alias cdtcd /test #切换到/test下的快捷命令 删除别名: unalias 别名 unalias cd…...
Docker和 Containerd 的区别
自 Docker 开启了使用容器的爆发式增长,有越来越多的工具和标准来帮助管理和使用这项容器化技术,与此同时也造成了有很多术语让人感到困惑。 容器生态系统 容器生态系统是由许多令人兴奋的技术、大量的专业术语和大公司相互争斗组成的。 幸运的是&…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
