windows10编译open3d 0.13

2023-10-27

写在前面

1、环境:win10,visual studio2019,cmake3.22.0-rc1,下载源码的时间:20211028
2、本文编译的是open3d 0.13,而且open3d库会更新,不同版本编译可能会出现不同的问题,需要自己探索
3、所有资源均已给出链接

准备

打开以下链接看看:
open3d官网:http://www.open3d.org/
open3d官方windows编译教程:http://www.open3d.org/docs/release/compilation.html#windows
需要安装:
cmake,git,自行百度安装

获取源码

1、访问open3d的github
https://github.com/IntelVCL/Open3D
2、git源码到本地
在本地打开cmd(win+r输入cmd),找个地方,建立一个open3d文件夹,这里是在e:/corlos/code下:

在这里插入图片描述

e:
cd carlos
cd code
mkdir open3d
cd open3d

获取open3d源码:
如果没有git,请先百度一下自行安装,并且配置一下git:
使用git创建在github上创建自己的仓库https://blog.csdn.net/qq_41102371/article/details/119349191
只需要文章里面add ssh key那一步就好
下面开始git源码,open3d包好了一些3方库,–recursive就是帮我们把这些三方库一起下载到本地的

git clone --recursive -b v0.13.0 https://github.com/intel-isl/Open3D

在这里插入图片描述

cmake

cmake版本

打开Open3D目录下的CMakeLists.txt可以看到当前open3d版本(当前时间是20211028)要求最低的cmake版本为3.19
在这里插入图片描述
检查自己的cmake是不是满足要求

cmake --version

开始cmake

下面两种方式,任选一个

1、命令行:

按照官方的来

cd Open3D
mkdir build
cd build

在这里插入图片描述

:: Specify the generator based on your Visual Studio version(指定你的visual studio版本)
:: If CMAKE_INSTALL_PREFIX is a system folder, admin access is needed for installation(选择你的安装路径)
官网<open3d_install_directory>的意思就是给出一个你想要安装的位置,这里是选择"D:/Program Files/open3d/"

cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX="D:/Program Files/open3d/" ..

然后等待出现configuring done generating done
在这里插入图片描述
下一步是打开visual studio编译

2、cmake-gui

打开cmake-gui
在这里插入图片描述
souece code选择Open3D目录,where to build选择Open3D里面的build(没有build的话会提示自动建立的)
在这里插入图片描述
在这里插入图片描述
选择根据你visual studio来选择generator,这里电脑上装的visual studio2019
在这里插入图片描述

在这里插入图片描述
configuring done 之后点击generate
在这里插入图片描述
generating dong!

另外,还可以自己再设置一下安装路径,对应的就是命令行方式里面的
-DCMAKE_INSTALL_PREFIX="D:/Program Files/open3d/"这个参数
在这里插入图片描述
然后再一次configure和generate

编译

打开build文件夹,可以看到里面已经有open3d的解决方案Open3D.sln
在这里插入图片描述
用visual studio2019打开它
在CmakePredefinedTargets下可以看见ALL_BUILD,点击右键生成
在这里插入图片描述
编译有可能会出现问题,到这里基本就是下载三方库错误的问题
比如三方库assimp
在visual studio的输出里面可以看到提示:
说是assimp下载失败
在这里插入图片描述

然后我们再往上翻输出记录,可以看到有提示下载了assim v5.0.1.tar.gz,并且放在了***/Open3D/3rdParty_downloads/assimp里面
在这里插入图片描述
那我们进去看看是怎么回事
在这里插入图片描述
可以看到这个文件确实存在了,但是是0kb,说明文件并没有下载成功
那其实我们可以自己去下载的,因为网址都已经给出来了:https://github.com/assimp/assimp/archive/refs/tags/v5.0.1.tar.gz,在浏览器粘贴这个网址就能下载了;
并且放的位置也告诉你了
在这里插入图片描述
把下载好的文件替换掉原来的0kb那个文件就好,注意如果下载好的文件如果和原来0kb那个文件名不一样,一定改成一样的然后替换原来的,比如手动浏览器下载的文件名是assimp-5.0.1.tar.gz,而需要改成v5.0.1.tar.gz
在这里插入图片描述
然后去visual studio重新生成assimp
在这里插入图片描述
然后就能看到可以成功生成了。
另外,我们其实可以去看看源码3rdparty里面的assimp是怎么回事
https://github.com/isl-org/Open3D/tree/master/3rdparty/assimp
这里有个assimp.cmake

在这里插入图片描述
点进去看看,下载的地址就是这里给的,并且会对下载的文件进行哈希值验证,以保证文件被正确下载
在这里插入图片描述
以上是assimp的举例,其他的项目同样的道理。

安装

最后全部项目生成成功之后,可以生成install
就是挨着ALL_BUILD那个
在这里插入图片描述
编译好的open3d就会安装到你之前指定的目录
在这里插入图片描述
现在去D:\Program Files\open3d
就可以看到安装好的open3d文件了,主要是一些库,二进制文件,和头文件。

测试

open3d给出了官方的测试demo
https://github.com/isl-org/open3d-cmake-find-package
这里也给出一个教程:
open3d 0.13的c++版本使用demo https://blog.csdn.net/qq_41102371/article/details/121065276
以及fpfh点云配准:
open3d使用fpfh做点云配准 https://blog.csdn.net/qq_41102371/article/details/121066031

最后,有任何问题,记得找官方资料:
github issue:
https://github.com/isl-org/Open3D/issues
官网:
http://www.open3d.org/
官方手册,里面包含怎么直接安装或从源码编译open3d,另外会给出各个功能的使用说明,但是是基于python代码的
http://www.open3d.org/docs/release/index.html
官方也有给很多example源码,cpp和python两个版本都有:
https://github.com/isl-org/Open3D/tree/master/examples

--------------------------------------------------------------------------------------------诺有缸的高飞鸟202110

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

windows10编译open3d 0.13 的相关文章

  • 通过 Active Directory 搜索进行有效分页

    在 NET 中使用 Active Directory 搜索进行分页的有效方法是什么 在 AD 中进行搜索的方法有很多 但到目前为止我找不到如何有效地进行搜索 我希望能够表明Skip and Take参数并能够检索结果中与我的搜索条件匹配的记
  • Qt 5 和 QProcess 使用信号/槽 read 重定向标准输出

    这个问题困扰着我 因为它应该有效 但遗憾的是它没有 我试图实现的是读取某个进程的标准输出并让另一个进程处理它 即打印出来 产生输出的过程如下所示 include
  • VS Code:自定义关键字的注入语法范围在 C++ 中被覆盖

    我想制作一个小型 VS Code 扩展 为 C C 代码中的少数自定义关键字添加语法突出显示 我正在尝试通过注入语法来做到这一点source c and source cpp语言范围 遵循VS Code 语法高亮指南 https code
  • do { ... } while (0) — 它有什么用? [复制]

    这个问题在这里已经有答案了 我已经看到这个表情十多年了 我一直在努力思考它有什么好处 因为我主要在 defines 中看到它 所以我认为它对于内部作用域变量声明和使用中断 而不是 gotos 很有用 对其他方面有好处吗 你用它吗 这是 C
  • 将 LUIS 与 FormFlow 集成

    我创建了一个机器人 里面有一个 FormFlow 现在 如果您输入 我想启动产品 LUIS 将告诉它必须转到哪个对话框 internal static IDialog
  • 创建动态对象

    如何动态创建对象 string columnNames EmpName EmpID PhoneNo List
  • send() 使我的程序崩溃

    我正在运行服务器和客户端 我正在我的计算机上测试我的程序 这是服务器中向客户端发送数据的函数 int sendToClient int fd string msg cout lt lt sending to client lt lt fd
  • 数据绑定问题,请解释

    public partial class Form1 Form MyClass myClass new MyClass one two public Form1 InitializeComponent textBox1 DataBindin
  • WPF:BinaryFormatter 可以序列化 FlowDocument 实例吗?

    我喜欢使用binaryformatter来序列化流文档 但这是例外 Serializable public class BinFlow public FlowDocument my get set BinFlow myBF new BinF
  • C# 如何在没有 GacUtil 的情况下在 GAC 中注册程序集?

    我需要使用批处理文件在 GAC 中注册程序集 有没有办法找到安装位置GacUtil exe或者有没有办法在没有 GacUtil 的情况下注册程序集 Your bestbet is to use a powershell script tha
  • 在没有诊断的情况下,保守函数中是否会出现显式指定的未定义行为

    脱离评论here https stackoverflow com a 76948726 1013719 3 简介 defs 3 65 defns undef https eel is c draft defns undefined says
  • 如何将 Activator.CreateInstance 与字符串一起使用?

    在我的反射代码中 我的通用代码部分遇到了问题 特别是当我使用字符串时 var oVal object Test var oType oVal GetType var sz Activator CreateInstance oType oVa
  • std::regex 的行为不一致

    我有以下问题 std regex如果我传递结果 行为会有所不同boost filesystem path string vs 将结果存储在中间字符串变量中 第一个将返回一个被截断的匹配 并且稍后不被接受std stoull 抛出 inval
  • OpenXML 如何获取范围内的单元格

    请帮助我获取范围内的单元格 例如从 A 1 到 E 11 都是矩形单元格 目前我的理想是 Worksheet worksheet GetWorksheet document sheetName SheetData sheetData wor
  • NHibernate Criteria API 是否支持集合属性的投影?

    我需要使用条件 API 复制以下工作 HQL 查询 session CreateQuery select c from Parent p inner join p Children c where p Id 9 and c Id 33 Se
  • 同时运行 x 个网络请求

    我们公司有一个网络服务 我想通过我自己的服务发送 XML 文件 存储在我的驱动器上 HTTPWebRequestC 中的客户端 这已经有效了 Web服务同时支持5个同步请求 一旦服务器上的处理完成 我就会从Web服务获得响应 每个请求的处理
  • 最有用的用户制作的 C 宏(在 GCC 中,还有 C99)? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 写入 Windows 7“预览”窗口区域

    如何使用 C 将控件写入或绘制到 Windows 7 预览区域 作为我正在讨论的示例 请在 Windows 7 中打开 Windows Media Player 并播放一首歌曲 播放歌曲时 最小化 Windows Media Player
  • 使用抽象类作为模板类型

    我对c 还是很陌生 来自java 我有一个 stl 类型列表Actor When Actor仅包含 真实 方法就没有问题 我现在想将这个类扩展到几个类 并且需要将一些方法更改为抽象的 因为它们不再具有具体的意义 正如我 从文档中 预期的那样
  • Microsoft Graph API 调用无限期挂起

    我正在尝试使用 Microsoft Graph 查询 Azure Active Directory 用户信息 我可以很好地进行身份验证 但是当我尝试查询用户信息时client Users我的应用程序无限期挂起 没有超时 没有错误 只是挂起

随机推荐

  • 支持m1的视频无损放大软件:Topaz Video Enhance AI Mac版

    Topaz Video Enhance AI for Mac是一款专业的AI视频无损放大软件 topaz video enhance ai mac版使用时间信息有效提高视频质量和细节 从而达到最好的视频放大 去隔行 降噪和还原效果 另外to
  • 微信退款申请成功异步通知使用AES解密问题

    在微信退款申请成功后异步通知会返回一段加密串 在req info字段里 按照微信文档的做法是 1 对返回的加密串req info做base64解码 得到另一个加密串 byte b Base64Util decode map get req
  • RabbitMQ--集成Springboot--3.2--消息确认机制

    RabbitMQ 集成Springboot 3 2 消息确认机制 代码位置 https gitee com DanShenGuiZu learnDemo tree master rabbitMq learn rabbitMq 01 1 介绍
  • dedecms支持Word内容一键导入

    1 4 2之后官方并没有做功能的改动 1 4 2在word复制这块没有bug 其他版本会出现手动无法转存的情况 本文使用的后台是Java 前端为Jsp 前端都一样 后台如果语言不通得自己做 Base64编码解码 因为公司业务需要支持IE8
  • 设计模式--观察者模式

    观察者模式 属于行为型模式基本原理 当一个对象被修改时 会自动通知它的依赖对象 主要流程 1 创建一个对象 存储它的所有依赖对象 2 在对象被修改的时候 通知所有依赖的对象 3 创建依赖对象 有统一的刷新方法 注意 避免循环依赖 inclu
  • uni-app-初识

    uniApp 初识 初识uni app 作用 特点 uni app的目录结构 运行编译环境准备 index vue页面分析 常用组件 条件编译 常用条件 模板中 常用条件 样式中 常用条件 配置中 配置页面 pages json 初识uni
  • 无人机集群作战仿真研究现状及在城市作战中的应用前景(附最新无人集群项目内容)

    随着人工智能 分布式系统 组网通信等技术的推进 以及机载硬件水平的显著提升 无人机集群受到以中美为首的军事强国高度关注和大力发展 无人机集群也被认为能够颠覆未来战场形势的一种作战手段 因此军事强国均在加紧无人机集群技术攻关并开展集群飞行试验
  • c语音中打印参数调用层级即call stack, call trace

    http stackoverflow com questions 105659 how can one grab a stack trace in c There s backtrace and backtrace symbols From
  • 智慧电塔倾斜在线监测解决方案

    一 方案背景 我国科技的不断进步 电塔的建设正在飞速发展 由于高压线路途经地域环境复杂 在运行过程中往往会受到多种因素的影响导致电塔变形 倾斜 倒塌 造成巨大的经济损失 因此需要电塔倾斜监测系统来预防此类事件的发生 智慧电塔倾斜监测解决方案
  • LightOJ 1220 Mysterious Bacteria

    Problem LightOJ 1220 Mysterious Bacteria 题意 输入一个 x 2 lt x lt 2 32 求满足 x b p 的最大的 p x b p都是整数 暴力版 枚举b或者枚举p 然后求另外一个 枚举b只要从
  • GLTF编辑器:在线模型材质编辑工具

    GLTF 编辑器 是一个功能强大 易于使用的在线3D模型编辑和查看工具 它支持多种格式的3D模型导入并将模型导出为GLB格式 除了可以对3D模型进行基本属性的修改之外 还支持对模型原点重置以及模型材质纹理修改 对于3D开发者和设计师来说 G
  • 简易聊天室代码分享 js+socket.io

    先言 这我以前写的 这里就是单纯分享下代码 不算正经文章 效果如下 前端用一个单html文件 然后后端用node js和socket io 也是只用一个单js文件就好 这里可以看下代码的实现逻辑就好 因为来连数据库才能运行的 有需要的话告诉
  • java2习题3

    1 编写应用程序求1 2 10 1 用for和while循环语句进行1 2 10 的计算 package yingshu public class one public static void main String args TODO A
  • Mybatis——基础使用学习

    Mybatis 基础使用学习 1 简介 1 1 什么时Mybatis 1 2 持久化 1 3 持久层 1 4 为什么需要Mybatis 2 第一个Mybatis程序 2 1 搭建环境 2 2 创建一个模块 配置好mybatis 2 3 编写
  • Eclipse导入maven项目Pom.xml文件报错处理方法

    文章转载自 https blog csdn net jianzhonghao article details 72858465 Eclipse导入maven项目时 Pom xml文件报错处理方法 导入maven项目 FIle Import
  • css实现分页效果

  • 设有n项任务,加工时间分别表示为正整数t1,t2,...,tn。背包问题系列

    设有n项任务 加工时间分别表示为正整数t1 t2 tn 现有2台同样的机器 从0时刻可以安排对这些任务的加工 知道T时刻所有任务完成 总加工时间为T 设计算法使得总加工时间T最小的调度方案 设给定的实例 t1 1 t2 5 t3 2 t4
  • linux学习(五)解决github网页无法进入

    文章目录 前言 1 问题 2 解决 前言 准确来说这个内容不属于linux学习 但是使用git管理代码时需要用到 这里就提前准备一下 1 问题 github网页无法刷出来 一直转圈 2 解决 step1 找到C Windows System
  • 取整函数_6个Excel取整函数技巧,让你的数据规规矩矩!

    Excel技巧是十分神奇的 可以用来娱乐 也能用来工作 更重要的是可以工作效率 不管是在什么地方 最不讨人喜欢的就是有小数点的数据 那怎么办了 今天就来教给大家6个超简单又很实用的Excel取整函数 1 CEILING 函数取整 CEILI
  • windows10编译open3d 0.13

    目录 写在前面 准备 获取源码 cmake cmake版本 开始cmake 1 命令行 2 cmake gui 编译 安装 测试 完 写在前面 1 环境 win10 visual studio2019 cmake3 22 0 rc1 下载源