HTTP 狀態(tài)消息
1168
2025-04-02
起因
今天在寫(xiě)C語(yǔ)言練習(xí)題時(shí),發(fā)現(xiàn)Vscode工作區(qū)中出現(xiàn)了這樣的情況:
程序運(yùn)行產(chǎn)生的可執(zhí)行文件和源碼混在一起,作為一名強(qiáng)迫癥,我怎能容忍它 “如此放肆”,特意查看了一波官方文檔后終于找到了解決辦法,這是對(duì).exe文件位置重定向后的工作區(qū)文件目錄:
怎么樣?看起來(lái)是不是舒服多了?emmm……強(qiáng)迫癥表示非常友好哦,下面就帶大家看看我是如何解決的。
解決方法
文件建立
現(xiàn)在關(guān)閉Vscode,在桌面新建一個(gè)文件夾,命名隨意,然后直接拖拽到Vscode圖標(biāo)處打開(kāi),這個(gè)文件就是我們的工作區(qū)
打開(kāi)之后我們新建文件夾 Demo ,其下新建文件 Hello.c ,輸入代碼以便我們后續(xù)測(cè)試
#include
點(diǎn)擊左側(cè)的調(diào)試按鈕->創(chuàng)建launch.json文件
選擇C++(GDB/LLDB)
選擇gcc.exe-生成和調(diào)試活動(dòng)文件
返回工作區(qū)文件目錄,發(fā)現(xiàn)生成了.vscode文件夾,包含launch.json和tasks.json文件。簡(jiǎn)單了解下:tasks用于編譯,launch用于執(zhí)行編譯后的文件,詳情點(diǎn)擊這里。
重定向
為了方便大家修改,直接給出文件,修改位置有特殊標(biāo)注。可以使用Ctrl+F組合鍵搜索,簡(jiǎn)單粗暴的可以直接刪除生成的文件內(nèi)容,復(fù)制下面對(duì)應(yīng)文件操作。
{ "tasks": [ {//構(gòu)建配置項(xiàng) "type":"shell",//任務(wù)類型,Vscode將預(yù)定義變量轉(zhuǎn)義解析后直接傳給command;shell->先打開(kāi)shell再輸入命令,因此args會(huì)經(jīng)過(guò)shell再次解析 "label": "C/C++: gcc.exe 生成活動(dòng)文件",//任務(wù)名稱 "command": "C:\Program Files\mingw64\bin\gcc.exe",//本地編譯器路徑 "args": [ //包含傳給gcc命令的參數(shù),用于實(shí)現(xiàn)特定功能 "-g", //生成和調(diào)試有關(guān)的信息 "${file}", //指定編譯文件為當(dāng)前文件 "-o",//指定輸出文件的路徑和名稱 "${workspaceFolder}\build\${fileBasenameNoExtension}.exe"http://修改.exe文件生成位置 ], "options": { "cwd": "C:\Program Files\mingw64\bin" }, "problemMatcher": [ "$gcc" ], "group": {//包含很多task,歸為group "kind": "build",//表名該組任務(wù)類型是構(gòu)建 "isDefault": true//表明此任務(wù)為此組任務(wù)中的默認(rèn)任務(wù) }, "detail": "調(diào)試器生成的任務(wù)。" } ], "version": "2.0.0" }
(1)將命令
"${fileDirname}\${fileBasenameNoExtension}.exe"
替換為
"${workspaceFolder}\build\${fileBasenameNoExtension}.exe"
(2)將命令
"cwd": "${fileDirname}"
替換為
"cwd": "C:\Program Files\mingw64\bin"
{ "version": "0.2.0", "configurations": [ {//包含Debug配置 "name": "gcc.exe - 生成和調(diào)試活動(dòng)文件",//配置名稱 "type": "cppdbg", //配置類型,對(duì)應(yīng)cpptools提供的調(diào)試功能 "request": "launch", //請(qǐng)求配置類型,可以是啟動(dòng)/附加類型[launch/attach] "program": "${workspaceFolder}\build\${fileBasenameNoExtension}.exe",//待調(diào)試程序本地路徑 "args": [], //程序調(diào)試時(shí)傳遞給程序的命令行參數(shù),設(shè)為空值 "stopAtEntry": false,//改為true時(shí)程序暫停在程序入口位置,即main處打上斷點(diǎn) "cwd": "${fileDirname}", //調(diào)試程序時(shí)的工作目錄,這里表示源碼目錄 "environment": [], //環(huán)境變量,設(shè)為空值 "externalConsole": false, //true:cmd窗口; false:Vscode的內(nèi)置終端輸出 "MIMode": "gdb", //指定連接的調(diào)試器,minGW64中調(diào)試程序->gdb "miDebuggerPath": "C:\Program Files\mingw64\bin\gdb.exe", //指定調(diào)試器所在路徑,安裝位置不同注意需要修改,間隔為\ "setupCommands": [ { "description": "為 gdb 啟用整齊打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: gcc.exe 生成活動(dòng)文件" //調(diào)試開(kāi)始前執(zhí)行需要執(zhí)行的任務(wù),調(diào)試前要編譯構(gòu)建 名稱要和tasks.json的label保持一致 } ] }
將命令
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
替換為
"program": "${workspaceFolder}\build\${fileBasenameNoExtension}.exe",
點(diǎn)擊Edit in settings.json打開(kāi)配置項(xiàng),由于Code Runner中配置文件較多,我們只修改相關(guān)部分即可
(1)將命令
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
替換為
"c": "cd $dir && gcc $fileName -o $workspaceRoot/build/$fileNameWithoutExt && $workspaceRoot/build/$fileNameWithoutExt",
(2)將命令
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
替換為
"cpp": "cd $dir && g++ $fileName -o $workspaceRoot/build/$fileNameWithoutExt && $workspaceRoot/build/$fileNameWithoutExt",
最后在工作區(qū)新建文件夾build,作為T(mén)est文件子項(xiàng),確定好文件從屬關(guān)系。
測(cè)試
完成,強(qiáng)迫癥表示很su服~~
如果幫到了您,別忘了支持下哦!
C 語(yǔ)言 C++ 開(kāi)發(fā)者
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。