一、源码编译
源码编译比较简单,可参考如下链接进行源码的下载与编译。
[1] open3d官网:http://www.open3d.org/
[2] windows10编译open3d 0.13
[3]open3d 0.13的c++版本使用demo
[4] open3d-0.10.0 + visual studio 2019 + windows
[5] Open3D c++配置(VS2019)
[6] Open3D 0.13版本 源代码编译
二、VS2019配库
1、配置Release模式
1. 新建空项目
2. 解决方案配置选择 Release,解决方案平台选择x64。
3. 新建一个C++源文件
4. 右击新建的项目—属性:打开属性表
5. 配置:Release—平台:X64—VC++目录—包含目录:
具体添加的include路径如下:
D:\Open3D_0.13.0\include
D:\Open3D_0.13.0\include\open3d\3rdparty\Eigen\eigen3
D:\Open3D_0.13.0\include\open3d\3rdparty\fmt\include
D:\Open3D_0.13.0\include\open3d\3rdparty\glew\include
D:\Open3D_0.13.0\include\open3d\3rdparty\GLFW\include
为便于与PCL库进行融合,本人使用的Eigen库是基于PCL编译。
6. 配置:Release—平台:X64—VC++目录—库目录:
具体添加的lib路径如下:
D:\Open3D_0.13.0\lib\Release
7. C/C++—常规—SDL检查:否
8. 链接器—输入—附加依赖项——添加lib文件。
具体添加的附加依赖项内容如下:
Release模式
OpenGL32.lib
assimp_assimp-vc142-mt.lib
assimp_IrrXML.lib
civetweb_civetweb-cpp.lib
civetweb_civetweb.lib
embree_embree3.lib
embree_embree_avx.lib
embree_embree_avx2.lib
embree_lexers.lib
embree_math.lib
embree_simd.lib
embree_sys.lib
embree_tasking.lib
filament_backend.lib
filament_bluegl.lib
filament_bluevk.lib
filament_filabridge.lib
filament_filaflat.lib
filament_filamat_lite.lib
filament_filament.lib
filament_filameshio.lib
filament_geometry.lib
filament_ibl.lib
filament_image.lib
filament_meshoptimizer.lib
filament_smol-v.lib
filament_utils.lib
glew.lib
glfw3.lib
imgui.lib
ippicv_ippicvmt.lib
ippicv_ippiw.lib
jpeg.lib
jsoncpp.lib
libpng.lib
lzf.lib
mkl_mkl_core.lib
mkl_mkl_intel_ilp64.lib
mkl_mkl_sequential.lib
mkl_mkl_tbb_thread.lib
mkl_tbb_static.lib
Open3D.lib
qhullcpp.lib
qhull_r.lib
rply.lib
stdgpu.lib
tbb_tbbmalloc_static.lib
tbb_tbb_static.lib
tinyfiledialogs.lib
webrtc_webrtc.lib
webrtc_webrtc_extra.lib
zlib.lib
9.测试代码
#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;
}
10.此时直接运行可能会出现如下错误
11.解决方案:项目属性 -> 配置属性 -> C/C++ -> 代码生成 -> 运行库
设置为:多线程调试(/MTd)
出现如下结果,则表示配置成功。
2、配置Debug模式
1.解决方案配置选择解决方案配置选择Debug,解决方案平台选择x64
2.右击新建的项目—属性:打开属性表
3. 配置:Debug—平台:X64—VC++目录—包含目录:
具体添加的include路径如下:
D:\Open3D_0.13.0\include
D:\Open3D_0.13.0\include\open3d\3rdparty\Eigen\eigen3
D:\Open3D_0.13.0\include\open3d\3rdparty\fmt\include
D:\Open3D_0.13.0\include\open3d\3rdparty\glew\include
D:\Open3D_0.13.0\include\open3d\3rdparty\GLFW\include
为便于与PCL库进行融合,本人使用的Eigen库是基于PCL编译。
4. 配置:Debug—平台:X64—VC++目录—库目录:
具体添加的lib路径如下:
D:\Open3D_0.13.0\lib\Debug
5. C/C++—常规—SDL检查:否
6. 链接器—输入—附加依赖项——添加lib文件。
具体添加的附加依赖项内容如下:
Debug模式
OpenGL32.lib
assimp_assimp-vc142-mt.lib
assimp_IrrXML.lib
civetweb_civetweb-cpp.lib
civetweb_civetweb.lib
embree_embree3.lib
embree_embree_avx.lib
embree_embree_avx2.lib
embree_lexers.lib
embree_math.lib
embree_simd.lib
embree_sys.lib
embree_tasking.lib
filament_backend.lib
filament_bluegl.lib
filament_bluevk.lib
filament_filabridge.lib
filament_filaflat.lib
filament_filamat_lite.lib
filament_filament.lib
filament_filameshio.lib
filament_geometry.lib
filament_ibl.lib
filament_image.lib
filament_meshoptimizer.lib
filament_smol-v.lib
filament_utils.lib
glew_gd.lib
glfw3.lib
imgui_gd.lib
ippicv_ippicvmt.lib
ippicv_ippiw.lib
jpeg.lib
jsoncpp.lib
libpng.lib
lzf_gd.lib
mkl_mkl_core.lib
mkl_mkl_intel_ilp64.lib
mkl_mkl_sequential.lib
mkl_mkl_tbb_thread.lib
mkl_tbb_static.lib
Open3D_gd.lib
qhullcpp_gd.lib
qhull_r_gd.lib
rply_gd.lib
stdgpu.lib
tbb_tbbmalloc_static.lib
tbb_tbb_static.lib
tinyfiledialogs_gd.lib
webrtc_webrtc.lib
webrtc_webrtc_extra.lib
zlib.lib
7.此时直接运行可能会出现如下错误
8.解决方案:项目属性 -> 配置属性 -> C/C++ -> 代码生成 -> 运行库
设置为:多线程调试(/MTd)