---
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/
:::
- ### 條件全勾

## 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路徑
:::
- 在搜尋欄搜尋編輯系統環境變數

- 環境變數

- 系統變數

- Double click Path

- 新增 Mingw的bin路徑


- 新增OpenCV的bin路徑


## 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開啟

- ### 在檔案總管右鍵新增test.cpp

## 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: 終端機的開法

## Step8: 測試時間
- ### 先編譯一次檢查C++環境裝好了無
- ### shift+ctrl+B ➜ 選擇g++編譯器

- ### 若無先編譯,會出現這個問題

- ### 打在終端機上
:::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
:::


## Step12: 存檔後到test.cpp執行結果,有以下兩種方式:
:::info
>### **1. Shift+ctrl+B : 只編譯出exe檔,要再手動執行exe。**
>
>### **2.** 
>### **案下去就會編譯加執行exe啦!!**
:::
### **:pushpin: Hint: 若出現此現象,則選擇g++編譯器**

## <補充>: 出現紅線 (ex: include出現紅線) 的解決辦法
### 1. **使用shift+ctrl+P叫出搜尋欄,輸入C++ config**

### 2. **修改內文**
