vscode原始檔和可執行檔案分離

2022-07-12 18:24:11 字數 2328 閱讀 8006

用vscode寫c/c++時, 為了方便, 會把不同的原始檔放在乙個資料夾裡

這裡不是做專案, 乙個原始檔就是乙個單獨的程式

然後生成的可執行檔案和源**就會放在乙個目錄裡, 還是同名, 就很容易點錯, 所以就想著改改

開啟vscode, 選單欄檔案->首選項->設定

使用搜尋功能, 搜尋code-runner並找到excutor map, 點選在settings.json編輯

出來這樣的頁面, 我們要修改的是cpp這一行, 當然, 其它語言也是一樣

修改成如下:

"cpp": "cd $dir && if [ ! -d \"bin\" ];then mkdir bin;fi  && g++ $filename -o bin/$filenamewithoutext && bin/$filenamewithoutext"
其中if [ ! -d \"bin\" ];then mkdir bin;fi為判斷bin是否存在, 如果不存在則建立, 當然,bin這個名字也改成自己喜歡的

配置除錯的是launch.json這個檔案, 而在除錯程式執行前會需要先進行編譯生成可執行二進位制檔案, 這時就需要配置task.json檔案

launch.json中, 通過改寫prelaunchtask引數, 並在task.json中新增引數, 可以達到預先建立bin資料夾的目的

task.json中加上如下任務:

並在生成可執行檔案的引數中, 更改目錄

"args": [

"-g",

"$",

"-o",

"$/bin/$"

],

launch.json中修改可執行檔案的位置

"program": "bin/$"
lauch.json中新增任務:

"prelaunchtask": [

"建立bin資料夾",

"c/c++: g++ 生成活動檔案"

]

完整tasks.json參考**

,

","-o",

"$/bin/$"

],"options": "

},"problemmatcher": [

"$gcc"

],"group": ,

"detail": "偵錯程式生成的任務。"}],

"version": "2.0.0"

}

完整的launch.json

",

"args": ,

"stopatentry": false,

"cwd": "$",

"environment": ,

"externalconsole": false,

"mimode": "gdb",

"setupcommands": [

],"prelaunchtask": [

"建立bin資料夾",

"c/c++: g++ 生成活動檔案"

],"midebuggerpath": "/usr/bin/gdb"}]

}

沒必要直接複製貼上, 版本可能會更改而不適用, 看懂怎麼改的即可

windows系統方法也類似, 要注意的

原始檔 目標檔案和可執行檔案

1.原始檔 存放程式 的檔案,即我們編輯 的檔案,稱為源 檔案。c語音源程式檔案的擴充套件名為 c 源 檔案是相對目標檔案和可執行檔案而言的 一般使用高階語言寫出來的。2.目標檔案 源 經過編譯所得到的二進位制 稱為目標檔案。目標檔案的擴充套件名為 obj windows 或 o linux 目標檔...

從原始檔到可執行檔案

建立對於問題思考的能力,培養自己的程式設計思想。原始檔 目標檔案 可執行檔案 原始檔 用偏日常化的語言進行編寫。c cpp 目標檔案 由計算機可識別的二進位制 構成,決定了程式執行的基礎。obj o 可執行檔案 可以執行為程式的檔案。exe out 過程 編譯 編譯過程包括 預處理 標頭檔案 巨集定...

C原始檔到可執行檔案的過程

一 c原始檔到可執行檔案共經歷了4個過程。在使用gcc編譯程式時,編譯過程可以被細分為四個階段,包括預處理 編譯 彙編 鏈結。1 預處理 在預處理階段,編譯器主要作載入標頭檔案 巨集替換 條件編譯的作用。一般處理帶 的語句。我們可以通過gcc 的 e 選項進行檢視,如下所示 root localho...