VS+Open3D_0.18.0版本环境配置

news/2024/9/23 21:03:04/

Open3D0.18.0版本较新,在网上参考资料编译,踩了不少雷,这里记录一下,结尾放上编译好的库

环境

VS2022+Open3D_0.18.0

准备

cmake >=3.20
python >=3.6

源码编译

  1. 在github官网下载Open3D的源码
    Open3D

  2. 解压后在目录下创建build和install目录
    在这里插入图片描述

  3. 打开cmake_gui,建议使用较新的cmake我这里用的是cmake3.29.2

  4. 设置源码路径和build路径,build路径就是第2步创建的build文件夹的路径
    在这里插入图片描述

  5. 点击Configure
    在这里插入图片描述
    6.选择生成器,这个你电脑有哪个版本就选哪个就行,我这里是VS2022,其实用VS2019也是可以的,其它地方不需要修改,然后点击finish即可
    在这里插入图片描述

  6. 如果网络条件不好的话,可能需要的时间比较长

  7. 将CMAKE_INSTALL_PREFIX值改为前面创建的install路径
    在这里插入图片描述

  8. 点击Generate

  9. 结束之后点击OpenProject,就会将项目在VS中打开
    在这里插入图片描述

  10. 这里看你要编译Debug版本的Open3D还是release版本进行选择
    在这里插入图片描述

  11. 我这里选的是Debug版本,右键单击ALL_BUILD项目点击生成
    在这里插入图片描述
    在这里插入图片描述

  12. 这里也要看网络环境,可能会很慢,生成结束之后,在ALL_BUILD项目下面会生成一个INSTALL项目,同样右键单击INSTALL项目,然后点击生成。
    在这里插入图片描述
    13.然后在install目录下会看到最后编译好的Open3D库,目录下应该是这样,但是据说不同Open3D库的编译结果有较大差异,我这里是将install里面生成的内容单独放到另一个文件夹里面了,但不单独都可以。
    在这里插入图片描述

Open3D_34">VS配置Open3D环境

  1. 打开属性管理器,在项目对应的Debug/Release模式下添加一个属性表
    在这里插入图片描述
  2. 包含目录
    在这里插入图片描述
    在这里插入图片描述
  3. 库目录
    在这里插入图片描述
    在这里插入图片描述
  4. 链接器->输入->附加依赖项
    在这里插入图片描述
Open3D.lib
OpenGL32.lib
Open3D_3rdparty_assimp.lib
Open3D_3rdparty_blas_mkl_core.lib
Open3D_3rdparty_blas_mkl_intel_ilp64.lib
Open3D_3rdparty_blas_mkl_sequential.lib
Open3D_3rdparty_blas_mkl_tbb_thread.lib
Open3D_3rdparty_blas_tbb_static.lib
Open3D_3rdparty_civetweb_civetweb-cpp.lib
Open3D_3rdparty_civetweb_civetweb.lib
Open3D_3rdparty_curl.lib
Open3D_3rdparty_embree_embree3.lib
Open3D_3rdparty_embree_embree_avx.lib
Open3D_3rdparty_embree_embree_avx2.lib
Open3D_3rdparty_embree_lexers.lib
Open3D_3rdparty_embree_math.lib
Open3D_3rdparty_embree_simd.lib
Open3D_3rdparty_embree_sys.lib
Open3D_3rdparty_embree_tasking.lib
Open3D_3rdparty_filament_backend.lib
Open3D_3rdparty_filament_bluegl.lib
Open3D_3rdparty_filament_bluevk.lib
Open3D_3rdparty_filament_filabridge.lib
Open3D_3rdparty_filament_filaflat.lib
Open3D_3rdparty_filament_filamat_lite.lib
Open3D_3rdparty_filament_filament.lib
Open3D_3rdparty_filament_filameshio.lib
Open3D_3rdparty_filament_geometry.lib
Open3D_3rdparty_filament_ibl.lib
Open3D_3rdparty_filament_image.lib
Open3D_3rdparty_filament_meshoptimizer.lib
Open3D_3rdparty_filament_smol-v.lib
Open3D_3rdparty_filament_utils.lib
Open3D_3rdparty_fmt.lib
Open3D_3rdparty_glew.lib
Open3D_3rdparty_glfw.lib
Open3D_3rdparty_imgui.lib
Open3D_3rdparty_ippicv_ippicvmt.lib
Open3D_3rdparty_ippicv_ippiw.lib
Open3D_3rdparty_jpeg.lib
Open3D_3rdparty_jsoncpp.lib
Open3D_3rdparty_liblzf.lib
Open3D_3rdparty_png.lib
Open3D_3rdparty_qhullcpp.lib
Open3D_3rdparty_qhull_r.lib
Open3D_3rdparty_rply.lib
Open3D_3rdparty_tbb_tbbmalloc_static.lib
Open3D_3rdparty_tbb_tbb_static.lib
Open3D_3rdparty_tinyfiledialogs.lib
Open3D_3rdparty_uvatlas.lib
Open3D_3rdparty_vtk_vtkCommonCore-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonDataModel-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonExecutionModel-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonMath-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonMisc-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonSystem-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonTransforms-9.1d.lib
Open3D_3rdparty_vtk_vtkFiltersCore-9.1d.lib
Open3D_3rdparty_vtk_vtkFiltersGeneral-9.1d.lib
Open3D_3rdparty_vtk_vtkFiltersModeling-9.1d.lib
Open3D_3rdparty_vtk_vtkFiltersSources-9.1d.lib
Open3D_3rdparty_vtk_vtkkissfft-9.1d.lib
Open3D_3rdparty_vtk_vtkpugixml-9.1d.lib
Open3D_3rdparty_vtk_vtksys-9.1d.lib
Open3D_3rdparty_webrtc_webrtc.lib
Open3D_3rdparty_webrtc_webrtc_extra.lib
Open3D_3rdparty_zeromq.lib
Open3D_3rdparty_zlib.lib

这里面是编译好的Open3D库路径下的lib文件夹下所有文件的文件名,注意还需要添加OpenGL32.lib
在这里插入图片描述

  1. c/c+±>代码生成->运行库,这里如果是Release版本就选MT,我这里是Debug版本选MTd
    在这里插入图片描述

测试结果

测试代码

#include <iostream>
#include <random>
#include <Open3D/Open3D.h>using namespace std;int main(int argc, char* argv[])
{// -------------------------生成点云-----------------------------auto noise_cloud = std::make_shared<open3d::geometry::PointCloud>();int N = 10000;noise_cloud->points_.resize(N);std::normal_distribution<> norm{ 0, 0.002 };std::random_device rd;std::default_random_engine rng{ rd() };for (size_t i = 0; i < N; ++i){noise_cloud->points_[i][0] = norm(rng);noise_cloud->points_[i][1] = norm(rng);noise_cloud->points_[i][2] = norm(rng);}open3d::io::WritePointCloudToPCD("Gaiss_noise.pcd", *noise_cloud, false);open3d::visualization::DrawGeometries({ noise_cloud }, "PointCloud", 1600, 900);return 0;
}

结果

在这里插入图片描述

参考文章

Win10系统下VisualStudio2019 配置Open3D-0.13.0
windows10编译open3d 0.13
open3d-0.10.0 + visual studio 2019 + windows


http://www.ppmy.cn/news/1444316.html

相关文章

python-pip如何配置国内镜像源加速下载包

文章目录 概述方法1:命令行临时指定源方法2:命令行设置全局配置方法3:永久配置用户级别的 pip 源方法4:系统范围内的永久配置示例:注意:常用国内镜像源地址概述 pip 配置源主要是为了更改 Python 包索引服务器(通常是 PyPI),这样当你使用 pip install 命令安装软件包…

微服架构基础设施环境平台搭建 -(六)Kubesphere 部署Redis服务 设置访问Redis密码

微服架构基础设施环境平台搭建 -&#xff08;六&#xff09;Kubesphere 部署Redis服务 & 设置访问Redis密码 微服架构基础设施环境平台搭建 系列文章 微服架构基础设施环境平台搭建 -&#xff08;一&#xff09;基础环境准备 微服架构基础设施环境平台搭建 -&#xff08;二…

C# WinForm —— 09 标签、文本框、按钮控件

标签 Label 一般显示不能编辑的文本或图像 常用属性、事件&#xff1a; 属性用途(Name)标签对象的ID&#xff0c;在代码里引用标签的时候会用到,一般以 lbl 开头Text设置或获取 界面上显示的 文本信息Image显示图像ImageList图像集&#xff0c;通常和 ListView ToolStrip Tre…

Linux--进程控制(1)

文章衔接&#xff1a; Linux--环境变量-CSDN博客 Linux--地址空间-CSDN博客 目录 1.进程创建 2.进程的终止 2.1想明白&#xff1a;终止是在做什么&#xff1f; 2.2进程终止的三种情况 2.3 进程如何终止 3.进程等待 &#xff08;wait/waitpid&#xff09; 1.进程创建 在li…

Pinia在Vue 3项目中的应用

Pinia是一个用于Vue 3的状态管理库。它旨在提供一个简单而强大的解决方案&#xff0c;用于在Vue 3项目中管理应用程序的状态。下面是Pinia在Vue 3项目中的一些常见应用示例&#xff1a; 创建和管理全局状态&#xff1a;Pinia允许您在应用程序中创建和管理全局状态。您可以使用P…

闲话 ASP.NET Core 数据校验(二):FluentValidation 基本用法

前言 除了使用 ASP.NET Core 内置框架来校验数据&#xff0c;事实上&#xff0c;通过很多第三方框架校验数据&#xff0c;更具优势。 比如 FluentValidation&#xff0c;FluentValidation 是第三方的数据校验框架&#xff0c;具有许多优势&#xff0c;是开发人员首选的数据校验…

案例-部门管理-新增

黑马程序员JavaWeb开发教程 文章目录 一、页面原型二、接口文档三开发1、controller2、service&#xff08;1&#xff09;service接口层&#xff08;2&#xff09;Service实现层 3、 mapper4、postman 优化 一、页面原型 二、接口文档 在这里插入图片描述 三开发 1、control…

FebHost:什么是挪威.no域名,如何注册?

挪威国家域名介绍 挪威是一个位于北欧的国家&#xff0c;北面和西面是大西洋和北海&#xff0c;东面和南面则与瑞典、芬兰接壤。挪威是一个高度发达的经济体&#xff0c;其政府在经济管理和可持续发展方面也取得了很多成就。挪威的人均GDP在世界范围内排名非常靠前&#xff0c…