doppia:https://bitbucket.org/rodrigob/doppia
doppia包含许多模块,我们主要需要的是其人脸检测模块,也就是objects_detection部分的内容,其编译过程在官方文档上有说明,正常来说,编译过程不会遇到什么问题,但假如你和我一样命途多舛的话,希望这篇wiki能够帮助到你。
1、你也许会遇到的第一个问题是在cmake阶段,关于boost的问题,会提示你findboost.cmake不能正确寻找到boost包,这个时候只需要卸载并重装boost即可,无论你是用apt-get还是yum,都能有效解决问题。
2、其他的问题是在make阶段,你也许会收到形如这种的提示:
no such instruction: `vmovd %xmm0, %eax'
解决的办法是修改common_settings.cmake,在line20,set(OPT_CXX_FLAGS "-fopenmp -ffast-math -funroll-loops -march=native") 删掉 -march=native,替换为-msse4.2。
common_settings.cmake,在line20,set(OPT_CXX_FLAGS "-fopenmp -ffast-math -funroll-loops -march=native") 删掉 -march=native,替换为-msse4.2。
3、接下来是
error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE<false>’
这种错误提示,发生于boost 1.58.0中,修正方法如下:
还是在 common_settings.cmake 中,line384,
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall ")
to
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -DBOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT=1")
4、最后一个可能会发生的错误是
error: ‘swap’ is not a member of ‘std’
只需在报错的cpp文档中包含
#include <algorithm>
<span style="color:#800000">即可。</span>
参考地址: