Open3D C++系列教程 (一)环境搭建

Open3D C++系列教程 (一)环境搭建

1. 前言

仅以此系列教程,纪念我被Open3D C++折磨的历程。此系列主要介绍如何在C++中使用Open3D,尤其是使用其GUI模块快速创建一个窗口应用程序。

本系列仅在Windows上进行测试,使用Visual Studio Community 2022 和CMake,Open3D版本为v0.17.0。

2. 环境搭建

你完全可以克隆官方的GitHub仓库然后自己编译,但是这个过程可能会碰到一些离谱的问题,为了方便起见,推荐直接下载官方提供的二进制包。
进入官方仓库或直接以下点击链接下载对应的二进制包:

目标库

将下载的zip解压任意到你想要的位置,如D:\Libs\open3d-devel-windows-amd64-0.17.0,路径中不要出现中文字符。
解压结果

3. 创建第一个Open3D项目

创建一个目录exp01,并在该目录下创建main.cpp和CMakeLists.txt,结构如下:

exp01
 ├── CMakeLists.txt
 └── main.cpp

3.1 CMakeLists编写

在CMakeLists.txt中编写以下内容:

# CMake版本需求
cmake_minimum_required(VERSION 3.21)

# 项目名称o3d_01, 编程语言C++
project(o3d_01 LANGUAGES CXX)

# 使用C++17
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# 添加Open3D根目录路径到CMake的搜索路径
list(APPEND CMAKE_PREFIX_PATH "D:/Libs/open3d-devel-windows-amd64-0.17.0")

find_package(Open3D REQUIRED)

# 创建可执行文件main并链接Open3D库
add_executable(main main.cpp)
target_link_libraries(main PRIVATE Open3D::Open3D)

# 由于下载的Open3D是动态库,需要将Open3D.dll拷贝到执行文件的目录下,以下自定义指令完成了这一工作。
add_custom_command(TARGET main POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy
    "${Open3D_DIR}/../bin/Open3D.dll"
    $<TARGET_FILE_DIR:main>)

注意: 上面的Open3D_DIR需要设置为你将下载的Open3D所解压的目录,注意路径分隔符。
经过find_package(Open3D REQUIRED)后,Open3D_DIR被设置为/path-to-your-open3d/CMake。所以在自定义指令拷贝Open3D.dll时的相对路径设置为${Open3D_DIR}/../bin/Open3D.dll

3.2 main.cpp编写

在该文件中,编写一个基础的网格可视化用来测试环境配置是否正确。

#include <iostream>
#include <open3d/Open3D.h>

int main() {
    using namespace open3d::geometry;
    auto sphere = TriangleMesh::CreateSphere(1.0,4);
    sphere->ComputeVertexNormals();
    sphere->PaintUniformColor({1, 0.706, 0});

    std::cout << sphere->vertices_.size() << " vertices\n";
    std::cout<<sphere->triangles_.size()<<" triangles\n";

    open3d::visualization::DrawGeometries({sphere});
}

4. 编译和运行

在当前项目的路径下,分别执行以下指令

mkdir build && cd build
cmake ..
cmake --build . --config Release

注意: 上述第三行指令中的,如果你下载的是Debug版本的Open3D,则需要替换成 --config Debug,如果是Release版本,并且想要进行调试,可以使用--config RelWithDebInfo

5. 运行结果

# 在build目录下运行main.exe
./Release/main.exe

执行上面的指令,如果能成功运行并显示,代表环境配置成功,可以继续进行后续的内容。
在这里插入图片描述

6. 完整代码下载

如果不想抄代码,或者想要获取直接获取源代码文件,可以通过下面的链接下载下载链接。那么代价是什么呢?


后续

Open3D C++系列教程 (二)第一个GUI窗口

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Open3D是一个用于3D数据处理的现代化开源库,支持Python和C++。你可以在Open3D的官方网站上找到更多关于Open3D的信息。如果你想在C++中调用Open3D,你需要满足一些条件,包括安装Open3D的Git源代码、CMake版本大于等于3.20和Clang版本大于等于7。对于C++中的新工程,你可以参考下面的CMakeLists.txt示例,以适配之前的安装路径: ``` cmake_minimum_required(VERSION 3.20.1) project(open3d_example) set(CMAKE_BUILD_TYPE "Release") set(CMAKE_CXX_FLAGS "-std=c++17") set(Open3D_DIR ${HOME}/open3d_install/lib/cmake/Open3D) list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # 查找Open3D find_package(Open3D HINTS REQUIRED) list(APPEND Open3D_LIBRARIES dl) if (Open3D_FOUND) message(STATUS "Found Open3D ${Open3D_VERSION}") link_directories(${Open3D_LIBRARY_DIRS}) endif() # 添加cpp文件 add_executable(open3d_test src/open3d_test.cpp) target_link_libraries(open3d_test ${Open3D_LIBRARIES}) ``` 这样,你就可以在你的C++项目中使用Open3D了。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Open3D c++配置(VS2019)](https://blog.csdn.net/m0_46611008/article/details/121417972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Open3D】如何在CMake/C++中调用Open3D](https://blog.csdn.net/weixin_44044411/article/details/128687221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉拉尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值