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文件。

  

  

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