兩者的區別
-
MSVC:
即Microsoft Visual C++ Compiler,即微軟自己的編譯器
我們下載Windows下的OpenCV時,會帶兩個文件夾VC14,VC15(分別與Visual Studio的版本有對應關系),這兩個文件夾下的庫可以直接運行不需要編譯
將VS作為Qt的開發環境也是使用這個編譯器的緣故 -
MinGW:
我們都知道GNU在Linux下面鼎鼎大名的gcc/g++,MinGW則是指Minimalist GNU for Windows的縮寫
它是將GNU開發工具移植到Win32平台下的產物,即一套Windows上的GNU工具集
用其開發的程序不需要額外的第三方DLL支持就可以在Windows下運行,相對地,不使用動態庫導致的就是編譯出來的程序大很多。也是可以設置使用靜態庫的
問題背景
在windows下面配置OpenCV和Qt的聯合環境時會發現網上各類博客中有兩種方案
-
直接介紹對工程的pro文件的配置
-
使用cmake和MinGW對OpenCV的源碼進行重編譯(極復雜)
這是禾路老師的博客,他就是cmake進行重編譯,我照葫蘆畫瓢,遇到了很多不同的步驟,最后也花了半天時間也沒成功
這是為什么?仔細查看,他們使用的編譯套件是不同的
-
吐槽:
在MacOS下面,可直接配置clang進行編譯,很方便
而在安裝的時候windows下的Qt時候,主要就有MinGW和MSVC兩個選項,這兩個編譯套件有什么區別?
需要吐槽Window的環境配置真的夠麻煩,安裝+卸載需要整整一天,尤其是Visual Studio,強行C盤,被迫上大容量ssd -
思考:
於是考慮到毛星雲OpenCV書中在介紹的在VS中配置OpenCV的方法,以及網上介紹的在VS中配置Qt的方法(即使用VS代替Qt Creator)
即應該有一種方法搭建聯合環境,而不需要對庫進行重編譯
后來通過搜索資料理解,以及咨詢了禾路老師,知道了兩者的區別,感謝。