[openMVS] 使用debug编译

在原来文件夹openMVS中新建debug_build,参考openMVS文件夹中的BUILD.md
本人的vcglibopenMVS在同一级目录
所以在cd到刚才新建的debug_build目录,在终端输入:

cmake .. -DCMAKE_BUILD_TYPE=debug -DVCG_ROOT="../../vcglib"

接着运行,这边的4表示四个线程同时make

make -j4

在编译过程中报错

error: calling a host function("Eigen::MatrixBase< ::Eigen::Matrix<float, (int)3, (int)3, (int)0, (int)3, (int)3> > ::inverse() const") from a device function("ComputeHomography") is not allowed
解决办法是:可以参考如下CSDN内容:https://blog.csdn.net/rdw1246010462/article/details/122219814

自己的使用的方法是里面的方法2,然后重新进行make,问题解决:

/usr/include/eigen3/Eigen/src/LU/InverseImpl.h的第335行添加EIGEN_DEVICE_FUNC

template<typename Derived>
EIGEN_DEVICE_FUNC
inline const Inverse<Derived> MatrixBase<Derived>::inverse() const
{
  EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsInteger,THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
  eigen_assert(rows() == cols());
  return Inverse<Derived>(derived());
}

以上就是编译openmvs的debug版本,这样主要是可以在源码的基础上进行自己的更改了,然后生成debug版本进行测试。

posted @ 2022-10-20 11:32  乞力马扎罗山的雪  阅读(102)  评论(0编辑  收藏  举报