1. 程式人生 > >VisualStudio2017+SSH+WSL 開發除錯Linux C/C++

VisualStudio2017+SSH+WSL 開發除錯Linux C/C++

編寫目的

當你點開該部落格時,我假設你:

  • VisualStudio IDE 具有一定的瞭解/使用經驗,具體體現在你能夠新建專案、配置專案、編譯、連結、除錯;
  • 對Linux有一定了解/使用經驗,具體體現在能夠使用基本的命令,並開發過簡單的Linux C/C++程式,例如HelloWorld…

否則,你首先應該去學習並實踐。

準備好那就讓我們開始吧!

1. 讓你的Window10支援WSL

Windows的Linux子系統功能預設是關閉的,所以你需要以類似這種方式找到並啟用該功能。具體參照下圖所示: 在這裡插入圖片描述

2. 獲取WSL

你可以通過類似下面的方式,從商店搜尋並找到所需要的Linux系統並直接獲取和安裝。具體參照下圖所示: 在這裡插入圖片描述

3. 配置WSL

當安裝完WSL之後,你可以通過PowerShell來進行配置WSL,你可以使用快捷方式:Win + X + A 以 Administrator 的方式來開啟執行,然後使用 bash 命令進入WSL。我預設你對Linux有所瞭解,所以這邊並沒有給出root以及user的配置細節。 配置WSL是最重要,也是最容易出問題的步驟之一,我希望你能夠仔細小心,遇到任何問題可以在下方留言。

1) 安裝 gcc g++ gdb gdbserver ssh zip

這邊我已經安裝好了,你可以參考下面的方式進行線上安裝/更新你的工具。具體如下圖所示: 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述

2) 配置 SSH

我這邊配置讓root無法登陸ssh,並將我的使用者emcpper的相關資訊(user_name and password)配置到sshd_config檔案中。 具體步驟如下所示: 使用命令 sudo nano /etc/ssh/sshd_config

進入配置介面 在這裡插入圖片描述 設定使用密碼登陸 ~ 在這裡插入圖片描述 禁止root登陸,配置登陸使用者資訊 ~ 在這裡插入圖片描述 開啟SSH服務~ 在這裡插入圖片描述

4. 安裝/更新 VisualStudio2017

你的VisualStudio2017需要具有Linux支援的選項。為了保證質量,你需要從官網下載並安裝VisualStudio。關於Linux部分的具體步驟你可以參考如下所示,找到選項並選擇,這不會佔用你很大的儲存空間: 在這裡插入圖片描述

5. 建立工程

這邊我不會演示如何去配置工程的屬性,因為這是根據你的需要去實現的部分,但這不代表你不需要對此有所瞭解,因為你可能會遇到相關的問題需要這方面的知識/經驗去解決。 具體步驟如下: 建立Linux跨平臺專案~ 在這裡插入圖片描述

編寫簡單的例子~

在這裡插入圖片描述 通過SSH連線到WSL~ [注意:你需要根據自己的需要/或者我的例子進行連線配置] [host_name : 預設localhost] [port: 預設22] [user_name : 我的例子是 emcpper, 必須在sshd_config中配置] [password : … ]

在這裡插入圖片描述 如果你遇到了問題,那麼可能是因為你沒有關閉相關防火牆~

在這裡插入圖片描述 在這裡插入圖片描述

6. 除錯程式

好的,這是最後一步了,你將擁抱Linux+VisualStudio2017 除錯程式~ [注意:這邊可能會出現路徑選擇的問題,莫慌] 在這裡插入圖片描述

解決方案一:刪除使用者下的遠端標頭快取檔案,預設使用安裝VisualStudio2017時勾選的Linux選項後生成的自帶的檔案。 [也就是在解決方案二所示圖片中,不點更新,而是刪除]

解決方案二:更新並重新載入快取檔案。 在這裡插入圖片描述 更新快取檔案~ [注意:如果載入失敗或者只加載一部分] [那麼你可以手動從Linux的usr目錄載入到當前usr目錄] [然後閱讀當前目錄下的txt檔案,瞭解被選擇的路徑] [這邊給出一種載入(cp)命令的使用例子] [1. 在當前資料夾Shift + 滑鼠右鍵,選擇進入powershell] [2. scp -r [email protected]:/usr . 將資料夾拷貝到當前資料夾] [3. 注意,該檔案很大,請選擇性拷貝(參考txt),而不是整個資料夾] 在這裡插入圖片描述 完成~ [接下來,巨硬的VS具有怎樣的操作我就不多說了…] 在這裡插入圖片描述

本文謹獻給那些想在Visual Studio上開發除錯Linux C/C++而又不知道如何去入手/或者找不到一個比較完整的例子的程式設計師,希望能夠帶給你們一些想法。我這邊只是列出了成功的操作步驟及相關截圖,中間的遇到的n多錯誤以及系統帶來的問題並沒有列出,我希望你能夠親自動手並體會其中的樂趣。