ubuntu下vscode调试开发踩过的坑
1.安裝vscode
??安裝vscode很簡單,只需要一個命令即可搞定:
$ sudo apt-get install visual-studio-code
??注:如果需要卸載,可使用 $ sudo apt-get remove code
安裝成功后,會在菜單欄上出現vscode的標簽,如果沒有,則可以在terminal中使用命令./code打開vscode
2.vscode使用過程的遇到的坑
??安裝完vscode后,用vscode打開代碼工程目錄,并根據提示安裝c/c++插件后,發現鼠標無法跟蹤函數和成員變量的定義,即control+鼠標單擊(或鼠標右鍵)->Go to Definition時,提示no definition found for *。被這個莫名其妙的問題搞得一頭霧水,百思不得其解。之前ubuntu16.04.4一直用的好好的,為什么到了18.04.1就找不到函數定義了。
??后來仔細看提示才發現,代碼路徑里面的文件夾名稱桌面是中文名(代碼放在桌面目錄下),會不會是因為這個問題才導致vscode無法跟蹤函數定義呢?于是將ubuntu系統切成英文系統,切換方法如下:
??1.打開系統菜單中的設置-》Region & Language
??將language/語言 從中文改為English(United States)
??將Formats/格式 從中國改為United States
??然后重啟系統
??2.重啟之后發現home目錄下除了中文的桌面目錄之外,還多了一個Desktop目錄,于是將中文桌面目錄下的所有文件夾剪切到Desktop目錄下,并檢查工程代碼目錄下是否還有其他中文字符,有的話繼續改成英文。
??3.使用vscode打開工程文件夾目錄,然后再control+鼠標單擊-》Go to Definition跟蹤函數定義,函數已經自動跳轉到函數的定義頁面。問題成功解決。
3.vscode調試linux下的c/c++工程
3.1準備源碼
??準備源碼main.cpp,代碼如下:
#include <stdio.h>int main() {printf("vscode test debug\n");int a = 3;int b = 2;int c = a*b;printf("a+b=%d\n",c);getchar();return 0; }3.2 vscode調用makefile編譯源碼
??為3.1的測試代碼準備一個makefile文件,內容如下:
TARGETNAME = build all:$(TARGETNAME) main.o:main.cppg++ -g -O0 -Wall -fPIC -c $^$(TARGETNAME):main.og++ -o $@ $^.PHONY:clean clean:rm -f $(TARGETNAME) main.o$ g++ -g -c test.cpp $ g++ -o test test.o??在terminal中make會生成build可執行文件
3.3 創建vscode調試配置文件
??使用vscode打開test.cpp所在的文件夾目錄,按F5,彈出選擇調試環境對話框(Select Environment),從對話框的下拉菜單中選擇C++(GDB/LLDB),如下圖所示:
??選擇后C++(GDB/LLDB)程序自動生成launch.json文件,如下所示:
1)、將
"program": "enter program name, for example ${workspaceFolder}/a.out",改為:
"program": "${workspaceFolder}/test",2)、將
"externalConsole": true,改為:
"externalConsole": false,3)、如果存在程序啟動參數,則將
"args": [],改為:
"args": ["arg1","arg2", "arg3"],3.4 使用vscode編譯makefile工程
??進入.vscode目錄(隱藏文件),創建tasks.json文件。
內容如下所示:
??保存后按ctrl+shift+B進行編譯。編譯成功后會在當前目錄下生成名為build的可執行文件。然后在代碼中設置斷點,按F5即可進行調試代碼。
3.5 使用vscode編譯源碼
??進入.vscode目錄(隱藏文件),創建tasks.json文件。
內容如下所示:
??保存后按ctrl+shift+B進行編譯,編譯成功后即可進行調試。
3.6 調試
??用vscode打開源碼,使用F9在需要調試的地方設置斷點,按F5運行程序,便可以開始linux下程序的調試,調試方法與windows的vs開發環境幾乎完全一樣。
4.總結一下踩坑的經驗教訓
1、vscode的代碼路徑不能有中文,否則會出現無法跟蹤代碼定義的問題;
2、"externalConsole": 應該為false,否則無法進入調試;fu
3、args為一個數組,而不是一個字符串
4、tasks.json的label為編譯目標程序名稱,必須與launch.json的"program": " ${workspaceFolder}/$(programname)",中的$(programname)相同,否則調試將出問題。
5、"command": "g++"為使用g++編譯,對于c++源碼,"gcc"為使用gcc編譯,對應c源碼,"make"對應makefile文件編譯,源碼工程目錄下必須有對應makefile工程
總結
以上是生活随笔為你收集整理的ubuntu下vscode调试开发踩过的坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue打包关闭console.log
- 下一篇: Android Selector的简写