多数博客分享的open3d的c++编译教程都没有讲编译后带动态库dll的问题,
只看到一两篇提到的,如open3d 0.13版本 vs2019编译_AI视觉网奇的博客-CSDN博客_open3d pythonhttps://blog.csdn.net/jacke121/article/details/120352949?ops_request_misc=&request_id=&biz_id=102&utm_term=open3d%20c++%20%E7%BC%96%E8%AF%91%20%E5%8A%A8%E6%80%81%E5%BA%93&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-120352949.142%5Ev32%5Epc_rank_34,185%5Ev2%5Etag_show&spm=1018.2226.3001.4187
就参考这个博客弄的,先是把vs2019社区版卸了,装上了vs2019专业版(professional)
我之前有篇博客说过注册开发者就能免费用vs2019专业版
visual studio 2019 下载_Arms206的博客-CSDN博客
然后下载Open3D的0.13版本,cmake 3.22.0-rc-1版本
open3d和cmake也是之前参考别人博客时装的,
cmake下载的zip版,感觉是种绿色版,
用的时候加到环境变量里,
删除的时候也就删了,环境变量里再去掉,挺方便
然后参照上面那个AI视觉网奇的博客,
需要修改一下Open3D文件夹下的CMakeLists.txt
开始我以为只修改了两处,一个参数1,一个参数2,
然后我去编译,报错,又回来看这个博客里放的CMakeLists.txt
发现还是有几处不一样的地方,应该在前59行里,对比着改,
或者直接把作者的CMakeLists.txt的内容复制过来,
然后打开CMake的gui,(下面是我的路径)
Where is the source code: D:/Code_2/Open3D
Where to build the binaries:D:/Code_2/Open3D/build
configure后,中间红色区域选项出来了,
有一个CMAKE_INSTALL_PREFIX, 这里我改为了D:/Code_2/Open3D_Install_Debug
(这是在编译debug版,编译release版的时候,也对应建了文件夹)
configure然后generate,下方显示完成done后,open project
vs2019上方菜单栏那里选择Debug与x64,(编译Release版就选Release)
在CMakePredefinedTargets文件夹下,对ALL_BUILD右键选择设为启动项(不清楚有啥用),
然后(build)生成,buid结束后我报了一些错误,是Unicode文件编码之类的,
解决方法参考的stackoverflow
visual studio 2010 - warning C4819: How to find the character that has to be saved in unicode? - Stack Overflow
全部成功生成后,右键ALL_BUILD下方的INSTALL,生成(build),
全部成功后,在D:/Code_2/Open3D_Install_Debug文件夹下就有了
bin、include、Cmake、lib四个文件夹,Open3D.dll在bin目录下
然后尝试官方给的例子,
isl-org/open3d-cmake-find-package: Find pre-installed Open3D package in CMake (github.com)https://github.com/isl-org/open3d-cmake-find-package
这个github页面有相应步骤,
里面的Step1:compile and install Open3D,
这一步我们已经完成了
Step2我跟着做报错了,首先少一个cd build,这个还没啥,
后面就有了问题了,命令行里报错找不到open3d.dll动态库,我看路径有问题,
然后看了下CMakeLists.txt,接着自己尝试了下,下面放出自己可以运行成功的命令
git clone https://github.com/intel-isl/open3d-cmake-find-package.git cd open3d-cmake-find-package mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX="D:/Code_2/Open3D_Install_Debug" -DOpen3D_ROOT="D:/Code_2/Open3D_Install_Debug" .. cmake --build . --config Debug
运行成功后,去build文件夹下的Debug文件夹下,可以看到Draw.exe
运行后出来一个绿色的球,可以鼠标转动,
release版本参照debug这个版本重新编译,
好像得先把Open3D文件夹下debug编译的build目录删掉,
忘了,我记得不删除去编译的话有报错
搞得比较粗糙,有些地方可能说的不准确



