Mingw編譯DLib


Mingw編譯DLib

因為機器上安裝了qt-opensource-windows-x86-mingw530-5.8.0,所以准備使用其自帶的mingw530來編譯DLib使用。
因為DLib使用CMake的構建腳本,所以還請先安裝好CMake
cmake的下載地址如下https://cmake.org/files/v3.7/cmake-3.7.2-win64-x64.msi

編譯出的文件在這里https://share.weiyun.com/1e6d7dc98bc8a9fa2922f99ee11dcdac

下載Dlib源碼

可以直接去DLib的官網http://dlib.net/找到你想要版本進行下載。
這里給出DLib-19.4的下載鏈接http://dlib.net/files/dlib-19.4.zip

或者直接從github克隆一個

git clone https://github.com/davisking/dlib.git

生成Makefile

使用Cmake來生成Makefile文件。
打開開始菜單里面的Qt 5.8下面的Qt 5.8 for Desktop (MinGW 5.3.0 32 bit)命令行工具,然后輸入下面的命令生成Makefile文件。

如果你不是使用的Qt自帶的mingw,那么也可以使用你自己下載安裝的mingw。前提是需要先把mingwbin目錄路徑添加到環境變量Path中。可以使用set Path=%Path%;mingw的bin路徑來臨時使用。

D:\dlib-19.4\build>cmake -DCMAKE_INSTALL_PREFIX=D:/libs/dlib -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE=mingw32-make ..

實際上上面的命令還有些不對,請看后面的說明。

使用上面命令之后出現了如下錯誤輸出

-- The C compiler identification is GNU 5.3.0
-- The CXX compiler identification is GNU 5.3.0
-- Check for working C compiler: C:/Qt/Qt5.8.0/Tools/mingw530_32/bin/gcc.exe
CMake Error: Generator: execution of make failed. Make command was: "nmake" "/NOLOGO" "cmTC_faf78\fast"
-- Check for working C compiler: C:/Qt/Qt5.8.0/Tools/mingw530_32/bin/gcc.exe -- broken
CMake Error at C:/Program Files/CMake/share/cmake-3.7/Modules/CMakeTestCCompiler.cmake:51 (message):
  The C compiler "C:/Qt/Qt5.8.0/Tools/mingw530_32/bin/gcc.exe" is not able to
  compile a simple test program.

看輸出是其去創建了nmake的構建腳本,這不是預期的。

於是添加了-G "MinGW Makefiles"選項之后重新生成,命令如下

cmake -DCMAKE_INSTALL_PREFIX=D:/libs/dlib -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release  -G"MinGW Makefiles"  ..

又出現下面的錯誤了

CMake Error: Error: generator : MinGW Makefiles
Does not match the generator used previously: NMake Makefiles
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.

這里說不能匹配以前生成使用的NMake Makefiles。這是因為cmake命令執行的時候具有緩存cache的原因,解決的辦法可以是刪除它。

刪除掉build目錄下的所有文件后重新運行下面命令

cmake -DCMAKE_INSTALL_PREFIX=D:/libs/dlib -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release  -G"MinGW Makefiles" ..

生成Makefile成功后輸出

-- Configuring done
-- Generating done
-- Build files have been written to: D:/development_library/dlib/dlib-19.4/build

在生成的時候還提示了沒有發現CUDAcuDNN。因為我這里不需要就不做了,有需要的人可以自己下載安裝(需要顯卡支持)后,重新運行cmake命令。

編譯

生成Makefile后,使用下面命令進行編譯

mingw32-make -f Makefile	# 編譯
mingw32-make -f Makefile install # 安裝

安裝之后可以到-DCMAKE_INSTALL_PREFIX=D:/libs/dlib指定的目錄中找到對應的頭文件和庫文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM