我的電腦為Windows10系統,原本安裝上Visual Studiao2015 Pro版本,但不知何故經常無法鏈接到其他頭文件的函數。因此我准備重新安裝VS2015(原來的工程都是用VS2015建立並編譯的)。
每次卸載Visual Studio2015都需要花費很長時間,需要從 控制面板——卸載程序中逐個刪除包括IIS網頁發布器、framework框架、各種包以及VS編譯器。每卸載一次都需要花費近兩個小時。
安裝VS2015也需要花費挺長時間,基本版所占內存為12G,加上一些附屬組建的話需要21G,一般需要兩個小時。一來一回一個上午就沒有了。
在安裝成功后,打開Visual Studio2015,一直彈出 ”文件缺失,可以查看一個xml文件“。后來我才理解,這應該是VS沒有卸載干凈,我的VS使用的是原來備份的Ghost文件,有些文件可能在這個過程中有更改。后來,我在program file(x86)和program file中將所有的Visual Studio 和 VS 文件夾均卸載。為了防止有漏網之魚,特意用 Everything 搜索了 ”visual studio“,並將 C 盤中所有符合的文件都刪除,重啟計算機。
接下來就是安裝Visual Studio2017了。7zip挺好用,可以將一個文件夾壓縮成好幾個壓縮文件;也可以將好幾個壓縮文件解壓成一個文件夾。VS2017很大,但在百度雲中下載很快,這次我挺百度。VS基本版只有8G,附加其他組建也只有10G,比VS2015精簡了很多。安裝后在控制面板中也只有少數幾個安裝程序,比起VS2015簡直就是一股清流。安裝好后特意選了幾個頭文件及函數測試了一下,無法鏈接的問題完美解決。
我的根本目的其實是做托盤識別,這里需要用到點雲數據和彩色圖像,因此需要配置 PCL 庫和 OpenCV 庫。
先介紹OpenCV庫。OpenCV現在已經到4.1版本(2019年7月),所以還是用最新的比較好。不同版本的VS使用的二進制 OpenCV 庫是不同的,目前只支持 vc14(VS2015) 和 vc15(VS2017)。特別需要申明一點,opencv庫從官網上或者是github上下載非常慢,簡直比蝸牛還慢,並且往往掉線,所以最好是備份到百度雲,以便下一次使用。
pcl1.8.0 庫是支持Visual Studio2015的,pcl1.8.1 庫是支持Visual Studio2017的。所以我需要重新安裝 pcl1.8.1庫。下載pcl1.8.1(非常慢並且經常容易斷網,建議備份到百度雲),安裝后在系統環境path中添加bin的路徑。
通過在 VS2017中新建屬性表且命名為 ”OpenCV4.0.0&VS2017Debugger.props“ 和 ”OpenCV4.0.0&VS2017Release.props“ 構建通用的OpenCV屬性表,以后導入到其他工程就非常方便。
通過在 VS2017中新建屬性表且命名為 ”PCL1.8.1&VS2017Debugger.props“ 和 ”PCL1.8.1&VS2017Release.props“ 構建通用的PCL屬性表,以后導入到其他工程就非常方便。
經測試后發現配置完全正確,然后將這四個 .props 文件備份到 Configuration 文件夾中。
我所使用的攝像頭來自圖漾科技,github上有一個工程文件為camport3-master。為了采集Point-3D,需要使用內置的 .../Samples/Common/freeglut 庫。這個庫首先需要用 cmake 程序進行編譯,生成 VS2017工程。然后利用VS2017將這個工程 .dll 和 .lib 庫。然后將生成的 .lib庫加入到工程的屬性表中(動態鏈接庫.dll文件可以直接放置在生成的可執行目錄下,我的為D:\Workspaces\visualStudio2015\camport3-master\sample\build\bin\Debug 目錄)。
由於工程編寫的程序用的是opencv3版本,我配置的版本為opencv4,所以發現了一些不同:
【1】CV_RGB2GRAY(opencv2)、COLOR_RGB2GRAY(opencv3、opencv4(不確定),並且需要添加頭文件 #include<opencv2/imgproc/type_c.h>來解決)
【2】opencv3與opencv4之間的一些宏定義存在改動,有些宏的名稱被改為其他名稱
此外還有一些其他問題,如
【3】在自定義輸出流 out 時,出現 "std::ofstream locationOut;不允許使用不完整的類型 "的錯誤,原來是 #include <iostream> 和 #include <fstream>漏掉了
【4】編譯時出現 LINK Error,無法查找指定函數。這時需要將 .cpp 文件手動添加到工程的 源文件中。
【5】VS2017不包括 SDK8.1,但本工程需要使用 SDK8.1,所以需要在安裝時需要勾選 “使用 C++ 的桌面開發 —— Windows8.1 SDK 和 UCRT SDK”,然后安裝即可。
【6】Debugger 和 Release 的 .lib 庫文件是不同的。
