[openMVS] 使用debug编译
在原来文件夹openMVS
中新建debug_build
,参考openMVS文件夹
中的BUILD.md
本人的vcglib
与openMVS
在同一级目录
所以在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版本进行测试。