簡單介紹環(huán)境:
vscode 、centos、 gcc、g++、makefile
簡單來說就是,寫好項(xiàng)目然后再自己寫makefile腳本實(shí)現(xiàn)編譯。所以看這篇博客的用戶需要了解gcc編譯的一些常用命令以及makefile語法。在網(wǎng)上看了很多教程,以及官網(wǎng)也看了很多次,最后自己一點(diǎn)多一點(diǎn)摸索,有的些許收獲。
首先要配置編譯的文件tasks.json文件、調(diào)試的launch.json文件。剛開始看很抗拒,但看久了,也就自然而然的接受了。這么說吧,這兩個(gè)文件很個(gè)性,所以沒有經(jīng)驗(yàn)的去用它做復(fù)雜一點(diǎn)的編譯和調(diào)試會吃不少苦。個(gè)性,是應(yīng)為,如果是編譯一個(gè)項(xiàng)目的話,你可以試試手動輸命令調(diào)試,其中涉及動態(tài)鏈接庫(動態(tài)鏈接庫也是容易出一堆問題),編譯成功之后,去調(diào)試,對調(diào)試也理解更深了,沒有可執(zhí)行文件是無法調(diào)試的,簡單點(diǎn)來說,調(diào)試就是跑你編譯成功的可執(zhí)行文件,畢竟機(jī)器跑很快的,所以需要設(shè)置斷點(diǎn),讓它按照你想要的邏輯去跑,但是要注意在多線程環(huán)境下,可能程序沒有按照你想的順序跑,可能一下子跑下又跑上(可能應(yīng)該一直往下跑的)。
{
"version": "2.0.0",
"tasks": [
{
"label": "Build C++ project",
"type": "shell",
"group": "build",
"command": "make" //這相當(dāng)于跑編譯命令 如果手動編譯就像 g++ xxx -0 xxx然后設(shè)置參數(shù)啥的 還經(jīng)常會碰見cwd意思是確定當(dāng)前的環(huán)境,比如多你的命令是在哪個(gè)目錄上跑的啊 },
{
"label": "Build & run C++ project",//這是編譯然后運(yùn)行
"type": "shell",
"group": {
"kind": "test",
"isDefault": true
},
"command": "make",
"args": [
"run"
]
},
]
}
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Debug (gdb)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/dronline",
"preLaunchTask": "Build C++ project",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}", //上面介紹過了
"environment": [],
"externalConsole": false, //這是打開新的終端
"MIMode": "gdb", //調(diào)試模式?
"miDebuggerPath": "/usr/bin/gdb", //這是啟動gdb的路徑
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
可以看這個(gè)參考鏈接
vs是懶人模式,但有很多地方也很頭疼,主要在導(dǎo)庫,設(shè)置模式,這塊。你要確定目錄,然后才是放庫。說簡單點(diǎn)就是,比如 /usr/lib/libsort.so
你要添加這個(gè)庫,你需要先把/usr/lib給添加上,然后再添加libsort.so,
手敲就是這樣文章來源:http://www.zghlxwxcb.cn/news/detail-618945.html
g++ hello.cpp -L/usr/lib -lsort -o hello
大概就這么多了。
祝好文章來源地址http://www.zghlxwxcb.cn/news/detail-618945.html
到了這里,關(guān)于linux | vscode | makefile | c++編譯和調(diào)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!