Ubuntu下dlib编译

  dlib编译命令非常简单,但编译中可能会遇到一些问题,以及官方命令编译出来的是静态库.a文件,因此需要分析下cmake编译命令。

常规流程

  Ubuntu下通常的dlib编译方法为:

  其命令可简化为:

mkdir build
cd build
cmake --build . --config Release

  需要注意的是使用过程中可能出现USER_ERROR__inconsistent_build_configuration__see_dlib_faq_2、jpeglib.h无法打开等问题,可参照VS2015+DLIB19.10配置, dlib_faq_2和dlib_faq_1问题解决,添加必要文件和命令解决。

编译so包方法

  常规流程的编译指令会生成静态库.a文件,且这样的命令和一般Linux环境下cmake的编译指令有一些差异(见OpenCV的编译过程),不好在编译过程中配置属性,因此想使用-D这种方式来编译。

  首先是官方编译指令中唯一的设置项cmake --build . --config Release,其中--build . --config Release就是-D CMAKE_BUILD_TYPE=RELEASE的用途,即在build阶段指定编译器类型,因此Ubuntu环境下可用如下指令进行编译:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D BUILD_SHARED_LIBS=ON ..

  其中CMAKE_INSTALL_PREFIX指定安装路径,如果如官方文档不执行make install,可用忽略;

  BUILD_SHARED_LIBS即设置最后生成文件是否为动态库,原Makefile中应该默认设置为“NO”状态,导致最后编译文件为.a文件,设置为"ON"后即可生成.so文件。

  

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章