用Visual Studio 2019連接 WSL來編譯調試C/C++項目

因為有作業要在Linux環境下寫,用虛擬機直接卡成PPT,VS code又不會調試,就搞一下VS 2019吧。

環境

windows 10 + WSL(Ubuntu 18.04.4) + Visual Studio Community 2019

  • Linux 里要有C/C++環境(gcc等)
  • VS要有 適用于 Linux 開發的 Visual C++產品,如果沒有的話在 Visual Studio Installer 好像可以下載(我不知道)

SSH

VS連接遠程系統依靠SSH,所以需要在WSL里和Windows下都需要下載SSH

Windows下安裝SSH

以管理員方式打開powershell

  1. 安裝ssh
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
  1. 配置ssh
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the Firewall rule is configured. It should be created automatically by setup. 
Get-NetFirewallRule -Name *ssh*
# There should be a firewall rule named "OpenSSH-Server-In-TCP", which should be enabled
# If the firewall does not exist, create one
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

完了之后輸入ssh
在這里插入圖片描述
就好了。

Ubuntu安裝ssh

  1. 安裝ssh客戶端和服務器
sudo apt-get install openssh-client
$ sudo apt-get install openssh-server
  1. 啟動ssh服務器
sudo /etc/init.d/ssh start
  1. 執行ps -aux | grep ssh,如果有
    在這里插入圖片描述
    類似的 sshd 就好了
  2. 默認情況下,ssh不允許遠程使用root賬戶連接,可以修改配置文件,主要修改一下幾項
# 允許使用root賬號遠程登錄
PermitRootLogin yes
# 允許使用密碼登錄
PasswordAuthentication yes
  1. 重啟SSH
service ssh restart

VS2019連接WSL

新建一個項目,右上角“平臺”選linux, 下面項目選“控制臺應用”,第一次新建Linux的項目后,運行那就會提示連接遠程系統,也可以點 工具 -> 選項 -> 跨平臺 -> 連接管理器 -> 添加添加一個遠程連接
在這里插入圖片描述
點連接之后,如果主機名那報錯,說明SSH無法連接,可能是本地或Linux服務沒打開,如果用戶名或密碼報錯,可能原因有:

  1. 密碼錯了
  2. SSH客戶端沒權限連接,可以使用普通用戶連接或按上面的在Linux里配置PermitRootLoginyes
  3. 端口占用,修改SSH服務端(Linux)配置文件中的Port字段,換一個端口

配置好之后的調試工具就有了
在這里插入圖片描述

調試項目

運行時沒有報錯,但好像也沒有任何輸出,這是應為控制臺窗口隨著程序運行結束會很快消失,所以在最后return 0處打斷點調試就可以了。
在這里插入圖片描述
最后運行產生的文件包括.out等會保存在用戶家目錄下projects目錄下,可以在項目 -> 屬性 -> 遠程生產根目錄/項目目錄處修改
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457450.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457450.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457450.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

node.js Websocket消息推送---GoEasy

Goeasy, 它是一款第三方推送服務平臺,使用它的API可以輕松搞定實時推送!個人感覺goeasy推送更穩定,推送速度快,代碼簡單易懂上手快瀏覽器兼容性:GoEasy推送支持websocket 和polling兩種連接方式,從而可以支…

git 移動分支指針_理解git 中的HEAD指針branch指針

HEAD指針使用git checkout 來移動HEAD指針,移動的對象可以是分支指針也可以是快照。HEAD指針可以指向快照也可以指向branch。當指向branch時提交后會和branch指針一起向后移動,當不指向branch提交時時則會在一個detached狀態。分支(branch)指針使用git b…

應用程序域

好文鏈接 使用.NET建立的可執行程序 .exe,并沒有直接承載到進程當中,而是承載到應用程序域(AppDomain)當中。應用程序域是.NET引入的一個新概念,它比進程所占用的資源要少,可以被看作是一個輕量級的進程。 …

【設計模式 03】裝飾模式——俄羅斯套娃?

裝飾模式(俄羅斯套娃?) 裝飾模式:動態的給某些對象添加額外的功能 參考: 簡書 | 裝飾模式 博客園 | 簡說設計模式——裝飾模式 博客園 | 裝飾器模式 Decorator 結構型 設計模式 (十) 什么是裝飾模式 裝飾模式也叫裝飾器模式,p…

系統移植的四大步驟

最近在學習系統移植的相關知識,在學習和調試過程中,發現了很多問題,也解決了很多問題,但總是對于我們的開發結果有一種莫名其妙的感覺,糾其原因,主要對于我們的開發環境沒有一個深刻的認識,有時…

bem什么意思_bem是什么意思_bem的翻譯_音標_讀音_用法_例句_愛詞霸在線詞典

全部Methods Three different concentrations of the n - butanol extract of MOH ( BEM ) : 0.038 g L ~ ( - 1 ), 0.11 g L ~ ( - 1 ) and 0.34 g L ~ ( - 1 ) were prepared.巴戟天醇提取物 ( BEM ) 配成含生藥0.038gL~ ( -1)、0.11gL~ ( -1 ) 、 0.34gL~ ( -1 ) 三種濃度…

display:flex

flex:彈性布局 常用屬性介紹: flex-direction: column (設置主容器主軸方向) flex-flow: row wrap (第一個參數為flex-direction,第二個為flex-wrap) align-items: flex-start (設…

Linux(Ubuntu 19.10)下 Qt5 連接 MySQL(QMYSQL driver not loaded)

Linux(Ubuntu 19.10)下 Qt5 連接 MySQL 安裝好 MySQL 和 Qt Qt 連接 MySQL 的代碼 QSqlDatabase dQSqlDatabase::addDatabase("QMYSQL");//加載mysql驅動,這個字符串是固定的 d.setHostName("127.0.0.1"); d.setDatabas…

華為消息推送 有透傳通道嗎_求解在推送用透傳消息-使用廠商通道(我用的是基座測試) 用手機測試出現了“clientId離線”問題...

// #ifdef APP-PLUS// uni.showModal({// title: 提示,// content: 您的用戶在其它的app登錄,如果有問題,請修改密碼或重新登錄!,// cancelText:"修改密碼",// confirmText:"好的",// success: function (res) {// if (r…

oneuijs/You-Dont-Need-jQuery

oneuijs/You-Dont-Need-jQuery https://github.com/oneuijs/You-Dont-Need-jQuery/blob/master/README.zh-CN.mdYou Dont Need jQuery 前端發展很快,現代瀏覽器原生 API 已經足夠好用。我們并不需要為了操作 DOM、Event 等再學習一下 jQuery 的 API。同時由于 React…

Wpf 數據綁定簡介、實例1

簡介:1.WPF綁定使用的源屬性必須是依賴項屬性,這是因為依賴項屬性具有內置的更改通知支持,元素綁定表達式使用了Xaml擴展標記, WPF綁定一個控件是使用Binding.ElementName, 綁定非控件對象時使用Source,RelativeSource,DataContex…

【設計模式 04】代理模式

代理模式 代理模式( Proxy):為其他對象提供一種代理以控制對這個對象的訪問。 參考:refactoringguru | proxy 什么是代理模式 有時候如果想要訪問某個對象,但又沒辦法直接訪問或不方便直接訪問,可以使用代理模式,代理…

css 大于號 標簽_CSS設計基礎選擇器篇

點擊上方 Java項目學習 ,選擇 星標 公眾號重磅資訊、干貨,第一時間送達前言:如果將CSS樣式應用于特定的網頁對象上,需要先找到目標元素。在CSS樣式中執行這一任務的部分被稱為選擇器。1 標簽選擇器優點:為頁面中同類型…

CSDN博客投票活動開始了

自己堅持寫博客,一方面是為了將自己對知識點的理解做一個總結,另一方面也是因為自己看到了很多無私奉獻分享自己知識的小伙伴們,因此自己也想像他們那樣盡自己微薄之力把自己對某一知識點的理解分享給大家,或許算不上什么特高級的…

crontab 提示 command not found 解決方案

crontab 提示 command not found 解決方案 今天遇見一個問題,crontab的定時任務會報錯:java command not found,但是手動執行腳本一直能成功。 猜想是環境變量的問題。 在crontab里添加個打印環境變量的任務: * * * * * echo $PAT…

java中文亂碼decode_Java中文亂碼處理

java編碼轉換過程我們總是用一個java類文件和用戶進行最直接的交互(輸入、輸出),這些交互內容包含的文字可能會包含中文。無論這些java類是與數據庫交互,還是與前端頁面交互,他們的生命周期總是這樣的:1、程序員在操作系統上通過編…

【設計模式 05】工廠方法模式

工廠方法模式 define an interface or abstract class for creating an object but let the subclasses decide which class to instantiate. 參考: refactoringguru | factory-methodjavatpoint | factory-method-design-pattern博客園| 工廠方法 簡單工廠的問題 …

[C++]宏定義#define A B C

C關于宏定義的用法,有形如#define A B C的格式,此時B和C都是已知的字符串常量. 在宏定義中. 可以把兩個常量字符串連在一起 如果#define A "a" 那么宏定義#define STRING A "bc" 就相當于 #define STRING "abc" 這里&…

LinkedList類源碼淺析(二)

1、上一節介紹了LinkedList的幾個基本的方法,其他方法類似,就不一一介紹; 現在再來看一個刪除的方法:remove(Object o) remove方法接受一個Object參數,這里需要對參數做空與非空處理; 但是刪除一個Object元…

【設計模式 06】原型模式(克隆??)

原型模式(clone?) Prototype pattern refers to creating duplicate object while keeping performance in mind. This type of design pattern comes under creational pattern as this pattern provides one of the best ways to create an object. 參考: tutori…