VisualStuido2019编译Open3D

1、Cmake configure 后会有部分第三方依赖库无法下载,可自行在github 或官网下载后添加到 3rdparty文件夹中对应的第三方库文件夹中,需要注意的是拷贝路径要与3rdparty文件夹中原有的路径一致

2、ippcv

 

3、geometry编译时报错 ,其中两个关键的报警是下面两个,解决办法参照,intel-isl/open3d  issue 2885 中的解决办法

 

      open3d::geometry::line3d 没有成员transform,

      planes使用未定义的class std::array<plane_t,6>

https://github.com/intel-isl/Open3D/pull/2885/commits/a27fbebe3e5df8df1a38061ce95b65bfc48bb415

 @@ -1,5 +1,6 @@
 #include "Line3D.h" #include "Line3D.h"
    
   #include <array>
 #include <cmath> #include <cmath>
    
 namespace open3d { namespace open3d {
 @@ -27,7 +28,8 @@ Line3D::Line3D(const Eigen::Vector3d& origin,
 } }
    
 void Line3D::Transform(const Eigen::Transform<double, 3, Eigen::Affine>& t) { void Line3D::Transform(const Eigen::Transform<double, 3, Eigen::Affine>& t) {
 this->transform(t); direction() = (t * direction()).normalized();
   origin() = t * origin();
 } }
    
 std::pair<double, double> Line3D::SlabAABBBase( std::pair<double, double> Line3D::SlabAABBBase(
 @@ -87,12 +89,12 @@ utility::optional<double> Line3D::ExactAABB(
 box.max_bound_ + Vector3d(tol, tol, tol)}; box.max_bound_ + Vector3d(tol, tol, tol)};
    
 using plane_t = Eigen::Hyperplane<double, 3>; using plane_t = Eigen::Hyperplane<double, 3>;
 std::array<plane_t, 6> planes{{{{-1, 0, 0}, box.min_bound_}, std::array<plane_t, 6> planes{plane_t{Vector3d{-1, 0, 0}, box.min_bound_},
 {{1, 0, 0}, box.max_bound_}, plane_t{Vector3d{1, 0, 0}, box.max_bound_},
 {{0, -1, 0}, box.min_bound_}, plane_t{Vector3d{0, -1, 0}, box.min_bound_},
 {{0, 1, 0}, box.max_bound_}, plane_t{Vector3d{0, 1, 0}, box.max_bound_},
 {{0, 0, -1}, box.min_bound_}, plane_t{Vector3d{0, 0, -1}, box.min_bound_},
 {{0, 0, 1}, box.max_bound_}}}; plane_t{Vector3d{0, 0, 1}, box.max_bound_}};
    
 // Get the intersections // Get the intersections
 std::vector<double> parameters; std::vector<double> parameters;
 @@ -321,7 +323,7 @@ Segment3D::Segment3D(const std::pair<Eigen::Vector3d, Eigen::Vector3d>& pair)
 : Segment3D(std::get<0>(pair), std::get<1>(pair)) {} : Segment3D(std::get<0>(pair), std::get<1>(pair)) {}
    
 void Segment3D::Transform(const Eigen::Transform<double, 3, Eigen::Affine>& t) { void Segment3D::Transform(const Eigen::Transform<double, 3, Eigen::Affine>& t) {
 this->transform(t); this->Transform(t);
 end_point_ = t * end_point_; end_point_ = t * end_point_;
 } }
    

4、jason 报错

[100%] Performing patch step for 'ext_jsoncpp'
error: patch failed: CMakeLists.txt:22
error: CMakeLists.txt: patch does not apply
error: patch failed: src/lib_json/CMakeLists.txt:125
error: src/lib_json/CMakeLists.txt: patch does not apply
make[3]: *** [CMakeFiles/ext_jsoncpp.dir/build.make:120: jsonc

https://github.com/intel-isl/Open3D/issues/3053

 remove the build/jsoncpp folder and rebuild.

5、Eigen报错  Eigen::eigen_assert_exception missing from includes of src/Core/products/Parallelizer.h 

在一个国外论坛中找到解决办法

https://linux.debian.bugs.rc.narkive.com/b1bOyTgl/bug-972105-libeigen3-dev-eigen-eigen-assert-exception-missing-from-includes-of-src-core-products

https://gitlab.com/libeigen/eigen/-/commit/ef3cc72cb65e2d500459c178c63e349bacfa834f

这个bug应该是Eigen 3.3.8 的bug

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值