--- title: HackMD Dark Theme tags: theme description: Use `{%hackmd theme-dark %}` syntax to include this theme. --- <style> html, body, .ui-content { background-color: #333; color: #ddd; } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { color: #ddd; } .markdown-body h1, .markdown-body h2 { border-bottom-color: #ffffff69; } .markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { color: #fff; } .markdown-body img { background-color: transparent; } .ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a { color: white; border-left: 2px solid white; } .expand-toggle:hover, .expand-toggle:focus, .back-to-top:hover, .back-to-top:focus, .go-to-bottom:hover, .go-to-bottom:focus { color: white; } .ui-toc-dropdown { background-color: #333; } .ui-toc-label.btn { background-color: #191919; color: white; } .ui-toc-dropdown .nav>li>a:focus, .ui-toc-dropdown .nav>li>a:hover { color: white; border-left: 1px solid white; } .markdown-body blockquote { color: #bcbcbc; } .markdown-body table tr { background-color: #5f5f5f; } .markdown-body table tr:nth-child(2n) { background-color: #4f4f4f; } .markdown-body code, .markdown-body tt { color: #eee; background-color: rgba(230, 230, 230, 0.36); } a, .open-files-container li.selected a { color: #5EB7E0; } </style> # 建置VScode的C++及OpenCV環境 by076 ###### tags: `Enviroment setup` ###### 不需要OpenCV,相關OpenCV步驟可以不用做 ## Step 1: 下載VScode Windows x64 Stable :::info https://code.visualstudio.com/ ::: - ### 條件全勾 ![](https://i.imgur.com/NvJ1TQB.png) ## Step 2: 下載Mingw64 :::info https://nchc.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z ::: ## Step 3: 下載OpenCV :::info https://drive.google.com/file/d/1UXtVSnCI7BTCAYuYgf2GQph7flR-UqGj/view?usp=sharing ::: ### :pushpin: Hint : 下載完請解壓縮資料夾們,不要耍蠢:D ## Step4: 建置環境變數 :::info ```mermaid graph LR 編輯系統環境變數:::someclass --> 環境變數 classDef someclass fill; 環境變數:::someclass --> 系統變數 classDef someclass fill; 系統變數:::someclass --> Path classDef someclass fill; Path:::someclass --> 新增Mingw的bin路徑 classDef someclass fill; 新增Mingw的bin路徑:::someclass --> 新增OpenCV的bin路徑 ``` 在搜尋欄搜尋編輯系統環境變數➜ 環境變數 ➜ 系統變數 ➜ Double click Path ➜ 新增 Mingw的bin路徑 ➜ 新增OpenCV的bin路徑 ::: - 在搜尋欄搜尋編輯系統環境變數 ![](https://i.imgur.com/DElKQR0.png) - 環境變數 ![](https://i.imgur.com/Qe1QFJ3.png) - 系統變數 ![](https://i.imgur.com/cMrFgOF.png) - Double click Path ![](https://i.imgur.com/OA57xHb.png) - 新增 Mingw的bin路徑 ![](https://i.imgur.com/6VMtgV4.png) ![](https://i.imgur.com/c5cLxnY.png) - 新增OpenCV的bin路徑 ![](https://i.imgur.com/i6lBlMl.png) ![](https://i.imgur.com/tvf9Mks.png) ## Step5: 把OpenCV裡的include和lib分別複製到mingw64中的include和lib :::info - include >範例: >D:\APP\Opencv\build\include內的 "opencv2文件"複製到 D:\APP\Mingw\mingw64\include中 - lib >範例: >D:\APP\Opencv\build\lib 內的 "全部資料"複製到 D:\APP\Mingw\mingw64\lib中 ::: ## Step6: 建置一個資料夾並建立test.cpp,在資料夾中右鍵"以Code開啟" - ### 找一個喜歡的地方建一個資料夾,右鍵以Code開啟 ![](https://i.imgur.com/IrU0Cof.png) - ### 在檔案總管右鍵新增test.cpp ![](https://i.imgur.com/h0QIwhL.png) ## Step7: 點開test.cpp,貼上範例程式 - **include出現紅線先呼略啦** - **test.png記得準備啦** ```cpp= #include "opencv2/opencv.hpp" #include "iostream" int main(int argc, char const *argv[]) { cv::Mat img = cv::imread("test.png"); if (img.empty()) std::cout << "image is empty or the path is invalid!" << std::endl; cv::imshow("Origin", img); cv::waitKey(0); cv::destroyAllWindows(); return 0; } ``` ### :pushpin: Hint: 終端機的開法 ![](https://i.imgur.com/NHQZktT.png) ## Step8: 測試時間 - ### 先編譯一次檢查C++環境裝好了無 - ### shift+ctrl+B ➜ 選擇g++編譯器 ![](https://i.imgur.com/hAFEg0f.png) - ### 若無先編譯,會出現這個問題 ![](https://i.imgur.com/PMw3Efw.png) - ### 打在終端機上 :::info g++ -g test.cpp -I <font color=red>D:\\\\APP\\\\Mingw\\\\mingw64\\\\include</font> -lopencv_core452 -lopencv_imgcodecs452 -lopencv_imgproc452 -lopencv_calib3d452 -lopencv_dnn452 -lopencv_features2d452 -lopencv_flann452 -lopencv_gapi452 -lopencv_highgui452 -lopencv_ml452 -lopencv_objdetect452 -lopencv_photo452 -lopencv_stitching452 -lopencv_video452 -lopencv_videoio452 -o test.exe <font color=red> 紅色的地方改成自己mingw64 include路徑 </font> ::: ## Step9: 執行資料夾內生成的test.exe - ### 成功顯示test.png ➜ 測試成功 ## Step10: 在Coding用資料夾內建立名為.vscode的資料夾,在裡面新增tasks.json ## Step11: 撰寫tasks.json - ### 從範例修改 :::info https://docs.google.com/document/d/1-jNoYgswnjlzuwWLovOge2SI1vWqKnym3ZTmsNh2YJQ/edit?usp=sharing ::: ![](https://i.imgur.com/xPgeFdX.png) ![](https://i.imgur.com/S9tsdg6.png) ## Step12: 存檔後到test.cpp執行結果,有以下兩種方式: :::info >### **1. Shift+ctrl+B : 只編譯出exe檔,要再手動執行exe。** > >### **2.** ![](https://i.imgur.com/ae4e3Ba.png) >### **案下去就會編譯加執行exe啦!!** ::: ### **:pushpin: Hint: 若出現此現象,則選擇g++編譯器** ![](https://i.imgur.com/9c7Sr5D.png) ## <補充>: 出現紅線 (ex: include出現紅線) 的解決辦法 ### 1. **使用shift+ctrl+P叫出搜尋欄,輸入C++ config** ![](https://i.imgur.com/1UarzBX.png) ### 2. **修改內文** ![](https://i.imgur.com/74cjXYb.png)