Vscode 重定向 .exe 文件生成位置

      網(wǎng)友投稿 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 int main() { printf("Hello world"); return 0; }

      點(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è)試

      Vscode 重定向 .exe 文件生成位置

      完成,強(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)容。

      上一篇:行間距在哪里(Excel調(diào)整行間距在哪里)
      下一篇:如何在Excel中將數(shù)據(jù)復(fù)制到多個(gè)工作表中?
      相關(guān)文章
      日韩国产精品亚洲а∨天堂免| 亚洲欧洲日产国码无码网站| 亚洲熟女少妇一区二区| 在线观看亚洲专区| jizzjizz亚洲日本少妇| 国产亚洲人成在线播放| 97久久国产亚洲精品超碰热| 亚洲第一区二区快射影院| 狠狠色香婷婷久久亚洲精品| 456亚洲人成在线播放网站| 国产午夜亚洲精品| 亚洲欧美熟妇综合久久久久| 亚洲精品国产精品| 男人的天堂av亚洲一区2区| 日韩亚洲翔田千里在线| 亚洲Aⅴ无码一区二区二三区软件| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲日本在线电影| 亚洲AV无码成人精品区日韩| 国产AV无码专区亚洲AV麻豆丫 | 色欲aⅴ亚洲情无码AV蜜桃| 国产AV无码专区亚洲AV麻豆丫| 亚洲av高清在线观看一区二区 | 亚洲精品亚洲人成人网| 亚洲AV无码久久精品色欲| 亚洲国产精品久久久久网站| 亚洲视频在线观看视频| 亚洲乱码中文字幕小综合| 亚洲无码一区二区三区| 色偷偷亚洲男人天堂| 亚洲伊人久久综合中文成人网| 国产亚洲精品福利在线无卡一| 亚洲人成网77777亚洲色| 亚洲高清视频在线观看| 亚洲熟妇色自偷自拍另类| 亚洲精品福利你懂| 含羞草国产亚洲精品岁国产精品| 亚洲偷自拍拍综合网| 亚洲色欲久久久综合网| 亚洲综合婷婷久久| 国产成人亚洲合集青青草原精品 |