前言
在对FaceBoxes,Landmarker以及FaceRecognizer6模块进行cmake时,很容易遇到下面SeetaAuthorize cmake文件找不到的问题。
CMake Error at Landmarker/CMakeLists.txt:55 (find_package):
By not providing "FindSeetaAuthorize.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"SeetaAuthorize", but CMake did not find one.
Could not find a package configuration file provided by "SeetaAuthorize"
with any of the following names:
SeetaAuthorizeConfig.cmake
seetaauthorize-config.cmake
Add the installation prefix of "SeetaAuthorize" to CMAKE_PREFIX_PATH or set
"SeetaAuthorize_DIR" to a directory containing one of the above files. If
"SeetaAuthorize" provides a separate development package or SDK, be sure it
has been installed.
问题解决
在上一篇文章(https://blog.youkuaiyun.com/avideointerfaces/article/details/114953925)中,有提到可以在对应CMakeLists.txt注释掉find_package那句话来解决。
那么本文则从另外一个角度来解决。 看上面错误log的第一句话,它的意思是说,因为在CMAKE_MODULE_PATH里面没有提供FindSeetaAuthorize.cmake这个文件,所以cmake时会去找SeetaAuthorizeConfig.cmake和seetaauthorize-config.cmake两个文件。 换句话说,如果CMAKE_MODULE_PATH里面有FindSeetaAuthorize.cmake,那么cmake就不会去找authorize的cmake config文件了。 事实上,在编译安装完SeetaAuthorize模块后,的确是没有这两个cmake配置文件的。
所以另外一个解决问题的方案是把FindSeetaAuthorize.cmake拷贝到...\SeetaFace6-master\Landmarker\cmake下面。当然如果你在cmake人脸检测或识别模块时,就把Landmarker换成FaceBoxes或FaceRecognizer6。
至此,上面的问题已得到解决。 当然后面cmake可能还会遇到其他错误,比如找不到SeetaAuthorize的根目录和头文件目录,这时需要其安装目录添加进去。如下图所示。