在嵌入式和服務(wù)器端程序開(kāi)發(fā)中,Linux是主流的開(kāi)發(fā)、運(yùn)行平臺(tái),但直接在這些平臺(tái)上進(jìn)行代碼開(kāi)發(fā)在很多情況下很繁瑣(只能使用文本字符進(jìn)行編輯,很多嵌入式Linxu系統(tǒng)不提供圖形界面環(huán)境,工作難度極大,效率極其低下),一般情況是在Windows或MacOS上編寫(xiě)代碼,在目標(biāo)主機(jī)上進(jìn)行編譯、運(yùn)行,使用Windows或MacOS作為代碼開(kāi)發(fā)平臺(tái),節(jié)省了很多界面、字體的配置美化工作;將編寫(xiě)好的程序代碼在Linux主機(jī)上進(jìn)行編譯、調(diào)試可以極大的提升工作效率。VSCode是微軟出品的一款免費(fèi)的輕量級(jí)開(kāi)發(fā)工具,通過(guò)安裝不同的應(yīng)用擴(kuò)展,可以作為很多語(yǔ)言的開(kāi)發(fā)工具,本文主要介紹如何配置VSCode作為L(zhǎng)inux C 的遠(yuǎn)程開(kāi)發(fā)工具。
一、安裝應(yīng)用擴(kuò)展
使用VSCode作為C/C++的IDE,需要用到兩個(gè)擴(kuò)展,一個(gè)用于連接Linux服務(wù)器(Remote-SSH擴(kuò)展),另一個(gè)擴(kuò)展(C/C++)用于VSCode對(duì)C語(yǔ)言的支持
打開(kāi)VSCode,點(diǎn)擊應(yīng)用左側(cè)欄的擴(kuò)展(Extention)按鈕,在左上角的擴(kuò)展搜索框中輸入 Remote ssh

安裝完Remote-SSH后,再次在擴(kuò)展搜索框中輸入 C/C++,如下圖:

兩個(gè)擴(kuò)展安裝成功后,便可以針對(duì)遠(yuǎn)程開(kāi)發(fā)Linux C進(jìn)行環(huán)境的配置了。
二、配置Remote-SSH連接至遠(yuǎn)程主機(jī)
在安裝了Remote-SSH應(yīng)用擴(kuò)展后,VSCode在左下角便會(huì)出現(xiàn)一個(gè)黃色圖標(biāo)

,點(diǎn)擊該圖標(biāo),在上方彈出的下拉列表中選擇 Connect to Host...

在下一個(gè)彈出窗口中,選擇 Add New SSH Host...

選擇該選項(xiàng)后,在接下來(lái)的彈出框中輸入所要連接主機(jī)的信息

輸入相關(guān)信息后,將出現(xiàn)以下窗口

該窗口主要是確定存儲(chǔ)Remote-SSH連接主機(jī)信息的文件,一般選擇第一個(gè),即:C:\Users\XXX.ssh\config 作為配置文件。選擇成功后,會(huì)在VSCode右下角彈出提示窗口:

選擇Open Config按鈕,便會(huì)在編輯器中打開(kāi)剛才的配置信息

確認(rèn)沒(méi)有問(wèn)題后,便可以關(guān)閉該窗口了。
再次點(diǎn)擊IDE左下角黃色圖標(biāo),在彈出的窗口中選擇Connect to Host... ,在彈出的窗口中,便會(huì)出現(xiàn)剛才配置的主機(jī)信息,點(diǎn)擊該主機(jī)信息,VSCode將會(huì)啟動(dòng)一個(gè)新的IDE窗口,如下圖所示:

選擇 Linux ,確認(rèn)要連接該主機(jī)后,Remote-SSH將詢問(wèn)連接該遠(yuǎn)程主機(jī)的密碼:

連接成功后,將在左下角顯示已經(jīng)連接的信息:

Tip:為了避免每次連接遠(yuǎn)程主機(jī)都需要輸入密碼,最好在Windows和Linux主機(jī)之間通過(guò)RSA密鑰進(jìn)行認(rèn)證。
點(diǎn)擊左邊欄的文件瀏覽器(Explorer)

點(diǎn)擊Open Folder按鈕,在彈出的窗口中選擇一個(gè)工作目錄作為C/C++程序的開(kāi)發(fā)目錄即可。

三、配置C/C++擴(kuò)展
安裝好該擴(kuò)展后,使用快捷鍵(Ctrl + Shift + P)調(diào)出配置查找對(duì)話框,在對(duì)話框中輸入 c/c++ 將彈出以下界面:

點(diǎn)擊 c/c++編輯配置(UI), 調(diào)出該擴(kuò)展的配置界面,在該配置界面中,主要注意以下幾項(xiàng):
配置名稱:在Linux平臺(tái)下,該項(xiàng)應(yīng)該為 Linux
編譯器路徑:gcc在Linux系統(tǒng)中的路徑,一般為:/usr/bin/gcc
IntelliSense 模式:選擇默認(rèn)值即可。(64位系統(tǒng)一般是 linux-gcc-x64)
包含路徑:重點(diǎn)配置項(xiàng)!,Linux系統(tǒng)的頭文件一般在 /usr/include 目錄下,一定要配置此目錄信息,最基礎(chǔ)配置如下圖所示:

配置完成后,該配置信息會(huì)保存在工程目錄 .vscode/c_cpp_properties.json 文件中,配置好后,文件內(nèi)容大致如下:

四、配置調(diào)試(Debugger)
使用VSCode進(jìn)行遠(yuǎn)程調(diào)試需要配置兩個(gè)文件,這兩個(gè)文件分別是
tasks.json:編譯器配置文件(在debug之前需要對(duì)要調(diào)試的程序進(jìn)行編譯)
launch.json:調(diào)試器配置文件
配置tasks.json
點(diǎn)擊菜單 (終端(Terminal)--> 配置任務(wù)(Configure Tasks...))

將打開(kāi)tasks.json文件,該文件內(nèi)容大致如下:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc 生成活動(dòng)文件",
"command": "/usr/bin/gcc",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "調(diào)試器生成的任務(wù)。"
}
],
"version": "2.0.0"
}
其中 label、args配置項(xiàng)需要注意,label配置的內(nèi)容需要和 launcher.json 配置文件中的前、后置任務(wù)名稱(preLaunchTask和postDebugTask)相對(duì)應(yīng)的,args配置項(xiàng)中的${fileDirname}/${fileBasenameNoExtension} 配置項(xiàng)需要和 launcher.json 配置文件中的 program 配置項(xiàng)相對(duì)應(yīng)。
Tip:VSCode配置文件中經(jīng)常用到一些宏定義,如 ${file} ,常見(jiàn)配置文件的宏定義如下:
假如將VSCode工作區(qū)設(shè)置為 /home/user1/workspace 目錄, 在VSCode編輯器中打開(kāi)了 main.c 文件,則:
${workspaceRoot}: 工作區(qū)目錄 --> /home/user1/workspace
${file}: 所打開(kāi)文件的所在目錄+全名 --> /home/user1/workspace/main.c
${fileBasename}: 所打開(kāi)文件的全名 --> main.c
${fileDirname}: 所打開(kāi)文件的所在目錄 --> /home/user1/workspace
${fileExtname}: 所打開(kāi)文件的擴(kuò)展名 --> .c
${fileBasenameNoExtension}: 所打開(kāi)文件的無(wú)擴(kuò)展文件名 --> main
${cwd}: 調(diào)試程序時(shí)的工作目錄 --> /home/user1/workspace
在 tasks.json 配置項(xiàng) args 中,最后一項(xiàng)為 ${fileDirname}/${fileBasenameNoExtension} ,假如在運(yùn)行調(diào)試main.c文件時(shí),VSCode將其解釋為:/home/user1/workspace/main
配置launcher.json
在編輯器中打開(kāi)一個(gè)所要調(diào)試的C/C++源文件,再點(diǎn)擊IDE左側(cè)欄的Debug按鈕,在左側(cè)彈出界面中點(diǎn)擊 create a launcher.json file, 如下圖:

編輯器中將顯示IDE創(chuàng)建的 launcher.json 文件,請(qǐng)按如下配置該文件的內(nèi)容:
{
// 使用 IntelliSense 了解相關(guān)屬性。
// 懸停以查看現(xiàn)有屬性的描述。
// 欲了解更多信息,請(qǐng)?jiān)L問(wèn): https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc 生成活動(dòng)文件"
}
]
}
該文件中的 program 和 preLaunchTask 配置項(xiàng)和 tasks.json 中的label、args 配置項(xiàng)相對(duì)應(yīng)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-628484.html
Ok,配置好以上信息后,打開(kāi)需要調(diào)試的程序,設(shè)置好斷點(diǎn)后,按下鍵盤(pán)的 F5 鍵進(jìn)行調(diào)試吧!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-628484.html
到了這里,關(guān)于使用Visual Studio Code遠(yuǎn)程開(kāi)發(fā)、調(diào)試Linux C的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!