基於windows系統中visual studio2017的dlib庫詳細配置安裝流程

來源:互聯網
上載者:User

標籤:following   static   dir   lib   init   解決方案   樣本   利用   glib   

dlib庫是一個非常強大的開源庫,有詳細的說明文檔和c++代碼,也提供了一些和python的介面,但是安裝和配置的過程略有些麻煩,網上有一些相關教程,但是大都零零星星不全面。筆者親自把所有的坑都踩了一遍,整理出了比較全面的教程,供大家參考

1、        下載安裝包

先在dlib網站上下載最新的庫檔案http://dlib.net/,左邊的一列是功能表列,包括了dlib的使用情境、編譯換幾個、python介面等各種詳細說明,可以看出該庫的應用情境包括API打包、影像處理、線性代數、機器學習、網路編程等幾個大情境,每個情境之下又有小的分類,不禁感歎dlib庫 的強大。

 

我下載的是dlib-19.7,將檔案解壓,將解壓後的檔案夾放置與任意檔案夾下,路徑中不要包含中文

2、        建立控制台工程

開啟visual studio 2017(其他版本的配置過程類似),建立控制台工程。這時如果直接將example中的代碼直接拷貝進去,就會報各種錯誤,首先錯誤就是無法進入找到dlib庫檔案中的各種標頭檔

 

 

3、        包含dlib對應檔案夾

我們需要在項目屬性中添加上剛才解壓好的lib路徑,注意添加的是dlib-19.7而不是dlib-19.7/dlib,因為前者包含了除dlib庫之外的很多內容,為避免以後麻煩,這裡直接包含dlib-19.7

右側方案總管,在項目上右擊滑鼠->屬性->VC++目錄,包含目錄、引用目錄、庫目錄均添加上dlib-19.7檔案夾路徑,點擊確認

 

 

4、        添加dlib.lib

這時可以發現之前紅紅色波浪線的錯誤都已經不在了,但是進行編譯時間,會出現如下的錯誤,

 

大概讀一下錯誤內容以及錯誤類型,可以判斷是因為缺少dlib.lib檔案導致的。下面需要製作dlib.lib,當然網上也有,但是不一定時最新的dlib,建議自己製作,也不麻煩

5、        製作dlib.lib

我們需要利用Cmake軟體,cmake是一個跨平台編譯工具,能夠方便地製作庫檔案,進入官網(https://cmake.org/download/)下載,下載與作業系統位元匹配 的版本

 

下載完成之後,開始安裝,,第一行時dlib-19.7檔案夾中的dlib檔案夾,dlib_building2是一個空的檔案夾 ,用於存放製作完成之後的檔案

 

點擊generate,選擇對應的vs版本號碼,點擊finish,庫檔案製作開始

 

當出現如下字樣時,製作完成

 

完成之後找到剛才的dlib_building2檔案夾,用vs2017開啟dlib.vcxproj

 

右擊重建,

 

在剛才的檔案夾共會出現debug檔案夾,裡面有需要的lib檔案

進入原來的工程,右擊進入屬性頁面,修改兩個地方,在連結器下的常規選項卡中的的附加庫目錄中,加入之前產生的dubug路徑。

 

在連接器的輸入選項卡中的“附加依賴項目”中添加dlib.lib

 

6、        添加source以及修改stadfx屬性

到這一步基本以及完成大部分,能夠正常運行是最好不過的,但是如果出現如下錯誤

error LNK2001: 無法解析的外部符號 USER_ERROR__missing_dlib_all_source_cpp_file__OR__inconsistent_use_of_DEBUG_or_ENABLE_ASSERTS_preprocessor_directives

那就說明需要加入source.cpp檔案,我們以添加現有項的方式加入,該檔案位於 dlib-19.7檔案夾下

 

這是筆者遇見了這樣的錯誤:

 

這個錯誤看上去簡單,但是當你在其中加入“stdafx.h”標頭檔時,還會有其他先行編譯的錯誤,執行起來麻煩,筆者經過尋找各種資料,以及自己嘗試,發現最簡單的方法就是在source.cpp檔案上右擊,點“屬性”,將先行編譯頭設定改為不使用即可

 

如果遇見了這樣的問題:

***\dlib\all\source.cpp : fatal error C1128: 節數超過對象檔案格式限制: 請使用 /bigobj 進行編譯

則按照如下方式解決

 

7、成功運行

直接運行樣本程式(http://dlib.net/gui_api_ex.cpp.html),可以得到這樣的一個圖形化使用者介面,可以看出這是一個用按一下滑鼠並且進行計數的一個程式,每次點擊button,都會是的數字加一

 

 

7、        圖形處理類配置

以上配置可以滿足非圖形處理的需要,但是如若你的程式中的演算法需要處理圖片,比如你想做Face Service或則時物品檢測,需要讀取圖片,那麼請繼續往下看

可能在編譯時間遇見這樣的錯誤

You must #define DLIB_JPEG_SUPPORT and link to libjpeg to read JPEG files. 
Do this by following the instructions at 
http://dlib.net/compile.html.

Note that you must cause DLIB_JPEG_SUPPORT to be defined foryour entire project. 
So don’t #define it in one file. Instead, add it to theC/C++->Preprocessor->Preprocessor Definitions 
field in Visual Studio’s Property Pages window so it takes effect for yourentire application.

解決方案如下:

 

將注釋中的表示的缺少項加進去即可

如果報如下錯誤:

\dlib\dlib-19.4\dlib\image_loader\jpeg_loader.cpp(17):fatal error C1083: 無法開啟包括檔案: “jpeglib.h”:No such file or directory

則需要按照上面的方法添加DLIB_JPEG_STATIC即可

基於windows系統中visual studio2017的dlib庫詳細配置安裝流程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.