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 的相关文章

  • 是否可以根据 QSlider 的位置来改变其手柄的颜色?

    我非常清楚如何通过样式表自定义 QSlider 但我想知道是否可以执行以下操作 我希望滑块的手柄从蓝色变为黄色 当设置在左侧时 它是蓝色的 设置在左侧时 它是蓝色的 当你将它向右移动时 它会出现从蓝色到黄色的渐变 如果可以通过样式表 如何实
  • 异步提交或回滚事务范围

    正如许多人所知 TransactionScope当async await Net 中引入了模式 如果我们尝试使用一些它们就会损坏await在事务范围内调用 现在这个问题已经解决了 感谢范围构造函数选项 a 17527759 1178314
  • 什么是具有副作用的表达式?为什么不应将它们传递给宏?

    我在 C 如何编程 一书中看到这样一句话 具有副作用 即变量值被修改 的表达式不应传递给宏 因为宏参数可能会被多次求值 我的问题是什么是具有副作用的表达式以及为什么不应将它们传递给宏 经典的例子是计算两个值的最大值的宏 define MAX
  • 隐式将 string 转换为 string_view

    void Foo1 string view view string str one two three Foo1 one two three Implicitly convert char to string view Foo1 str I
  • tmpnam 的 C/C++ 线程安全性?

    我需要使用tmpnamC 中的函数 但我需要了解它的线程安全性 也就是说 如果我有多个线程 每个线程都需要为临时文件获取不同的名称 我是否可以保证每个线程都会收到具有不同名称的文件 tmpnam 仅保证该文件当时不存在 但它可能会在您自己创
  • pybind11 返回 numpy 对象数组

    使用 pybind11 C API 和 python3 我们如何在 C 实现中正确创建一个 numpy 对象数组 即 unicode 字符串 并将其返回给 python 传递到 pybind11 array 的底层数据数组的确切内存布局是什
  • esp8266互联网交换机问题

    我正在尝试制作一个门继电器开关系统 我可以通过端口转发从任何地方进行操作 我找到了一个非常有用的指南和代码 我的程序基于 https openhomeautomation net control a lamp remotely using
  • DirectX Vertex 中的 THE 是什么

    我知道 RHW 是倒数同质 W 但有人可以解释一下它的使用方法和作用吗 gamedev论坛上的说明post http www gamedev net topic 440283 reciprocal of homogeneous w and
  • 如何防止打印屏幕

    我有一个要求 我正在开发的应用程序阻止用户轻松捕获屏幕内容 我已经表示 没有可行的方法可以完全防止这种情况发生 但我正在寻找方法来为这一过程引入一些障碍 我正在使用 C NET 2 0 和 WinForms 你不能 您能做的最好的事情就是在
  • SolrNet:尝试添加和提交时 SolrConnectionException (400) 错误请求

    我已经到了 SolrNet 执行 Add 方法的地步 但是当我尝试 Commit 时 我收到了错误 以下是我的 schema xml 模型 调用它的代码以及我得到的错误 更奇怪的是 尽管出现错误 但在我重新启动 Tomcat 后 该模型仍会
  • 使用 C 通过引用传递数组

    是的 我已经阅读了这个问题和答案 在 C 中通过引用传递数组 https stackoverflow com questions 1106957 pass array by reference in c 我有一个类似的问题 并从该问题中实现
  • 如何在C#中使用默认浏览器打开带有锚点(#)的html文件

    我正在尝试在 C 中打开上下文帮助文件 当我没有指定锚点时 它工作得很好 Process Start C Help Help htm 但是当我指定锚点时 它不会打开 Process Start C Help Help htm Toc3420
  • try-catch 块是否会降低性能[重复]

    这个问题在这里已经有答案了 This link http www cplusplus com doc tutorial exceptions states 为了捕获异常 我们必须将一部分代码放在异常下 检查 这是通过将这部分代码包含在 tr
  • 将 LPTSTR 转换为要写入文件的字符串或 char *

    我想将 LPTSTR 转换为字符串或 char 以便能够使用 ofstream 将其写入文件 有任何想法吗 Use T2A http msdn microsoft com en us library 87zae4a3 VS 80 aspx宏
  • 如何收集和存储tellp()、tellg()返回类型?

    我正在编写一个在文件中维护 linked list 的程序 因此 我通过使用tellp tellg 遍历文件并将其添加到特定的长整数 可以视为偏移量 以到达新位置 一个简单的例子是 long next offset sizeof long
  • 使用循环在 C 中管道传输两个或多个 shell 命令

    我正在尝试执行ls wc l通过 C 语言程序 而不是使用命令行 这是我当前的工作代码 int main int pfds 2 pipe pfds pid t pid fork if pid 0 The child process clos
  • 是否可以在 ASP.NET Web API 和 SPA 中使用基于 cookie 的身份验证?

    我想创建基于 angularjs 前端和 ASP NET Web API 的 Web 应用程序 我需要创建安全 api 但我无法在将实施此 Web 应用程序的公司服务器上使用基于令牌的身份验证 是否可以对 SPA 和 ASP NET Web
  • 如何将 .ashx 处理程序与 asp:Image 对象一起使用?

    我有一个 ashx 处理程序 using System using System Web public class Thumbnail IHttpHandler public void ProcessRequest HttpContext
  • 如何在 C# 中使用 Selenium WebDriver 获取当前窗口的 URL?

    在我的应用程序中 登录时 它会导航到另一个页面 现在我需要在 selenium C 中使用 WebDriver 获取新的 URL 我找不到任何函数来执行此操作 我努力了driver Url driver getLocation and dr
  • printf 右对齐括号内的数字

    我正在编写一个程序 显示数组中的所有信息 它必须以括号中的数组索引开头 例如 2 并且它们必须彼此正确对齐 如果只是数字 我知道你可以这样做 printf 10d index 但是用括号括起来会得到以下输出 1 2 10 11 当我真正希望

随机推荐

  • 支持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 下载源