
Open3D c++配置(VS2019)
Open3d VS2019 C++配置
历时三天终于成功了,网络上相关资源太少,踩坑无数,为了避免忘记和给需要的人特此写此篇blog。
本文需要:
1.Git(以及GitTortoise);2.VS 2019;3.cmake(3.18以上版本,推荐安装最新版);4.python环境支持3以上(可选,若不需pybind可不用);5.某些地方的科学上网
Open3D官网:Open3D – A Modern Library for 3D Data Processing
可以根据Build from source — Open3D 0.13.0 documentation
build from source来看。下面进入安装步骤:
第一步:需要Git:Git(安装Git可以参考别的文章很简单基本一路默认next)
在Git安装完毕的基础上推荐安装gGtTortoise:(有语言包可选)Download – TortoiseGit – Windows Shell Interface to Git
第二步:在本地新建一个Git仓库,复制open3d的git连接或者gitee等镜像
原链接:https://github.com/isl-org/Open3D
mirror:mirrors / intel-isl / Open3D · CODE CHINA
复制链接,在仓库中右键,选择克隆,若无克隆选项,按住shift再按右键
以下界面为成功,若出现链接无法连接的情况需要手动下载,或者换源。
在文件夹右键,选择切换版本(Open3d版本,3rdparty差别较大),我使用的是0.10.0版本。
切换完毕版本后,右键更新子模块(因为配置必须安装子模块否则会失败)
这里有个大坑就是可能某些git链接无响应,此时可以去修改cmake但是比较麻烦,推荐将错误信息(未下载成功的子项记录下来)在github下载下来解压到相应的3rdparty文件夹下,特别提一下,在0.10.0有个大坑fmt模块,默认下载的是6.0.0版本,但是后面会出现找不到<fmt/time.h>头文件的情况,该版本无此头文件,故我又找了之前的版本,亲测5.3.0可用
第三步:cmake
当3rdparty中子模块文件补充完整后,进行cmake,打开cmake_GUI
填入cmakelist所在文件夹为sourcecode,在该文件夹下新建build(INSTALL名字无所谓)列为where to build,点击configure,然后更改CMAKE_INSTALL_FREFIX为你所新建的build文件夹。再次点击configure,显示done则表示成功了(若有报错根据信息调整,我遇到的一个错误是一个子模块的.cmake文件位置不对把他移出即可),再点击Generate,done后点击open project
(需要选择VS2019以上版本和x64)
选择release和x64(输出的库也是Realease的),首先生成All_build,此过程中可能需要保持网络还有一些复杂需要下载,某些连接可能还需要外网环境。
成功编译后如下图所示:(若报错,看看输出信息那个模块有问题,其中有些问题可忽略)
此时就可以去找build中的库与头文件了
build下lib文件夹下为生成的lib(均为静态库)
头文件在include/open3d下
E:\**\Open3D\build\include\Open3D
我们可以将这些文件整理出来以便后面使用
打开官方给出的测试代码试试是否可以运行
#include <string>
#include "Open3D/Open3D.h"
int main(int argc, char* argv[]) {
if (argc == 2) {
std::string option(argv[1]);
if (option == "--skip-for-unit-test") {
open3d::utility::LogInfo("Skiped for unit test.");
return 0;
}
}
auto sphere = open3d::geometry::TriangleMesh::CreateSphere(1.0);
sphere->ComputeVertexNormals();
sphere->PaintUniformColor({ 0.0, 1.0, 0.0 });
open3d::visualization::DrawGeometries({ sphere });
return 0;
}
需要配置头文件和链接库(上面图中的库)。
头文件有这些:
如果出现这样(下图)的报错,预处理器中加入 CURL_STATICLIB (主要原因依然是缺少库文件)
此外若报错如下图:
需要在库中再加入OpenGL32.lib(无需添加附加目录,是win10 SDK自带的)
再次运行报错消失,输出如下:
球是可以用鼠标旋动的,至此完结撒花!!!
同样也可以根据官网的方法操作在console界面通过命令完成。
更多推荐
所有评论(0)