C++在vscode中的多文件編程問題解讀
C++在vscode中的多文件編程
相信有很多的小伙伴在一開始的時(shí)候,都會(huì)對(duì)vscode的多文件編程有很多的疑問,網(wǎng)上也有很多的教學(xué),不過網(wǎng)上的解決方法都會(huì)對(duì)一些json文件進(jìn)行修改,或者使用cmake寫命令來操作,不過即使有這么多的教學(xué)我也還是沒有完全學(xué)會(huì)。
所以今天我將給大家介紹一種方法可以不用修改json或者使用cmake就能夠?qū)崿F(xiàn)vcsode中C++的多文件操作。
首先我們需要?jiǎng)?chuàng)建幾個(gè)需要的文件,比如main.cpp 、my_swap.h(這里就用my_swap來做例子)注意我們不需要my_swap.cpp
然后輸入代碼
main.cpp
#include <iostream> #include "my_swap.h"http://需要包含的頭文件,可包含多個(gè)using namespace std;int main() { ? ? int a=2,b=1; ? ? cout<<"a="<<a<<" "<<"b="<<b<<endl; ? ? my_swap(a,b); ? ? cout<<"a="<<a<<" "<<"b="<<b; ? ? return 0; }
my_swap.h
#pragma oncevoid my_swap(int &a,int&b)//直接將函數(shù)定義寫入 { ? ? int t=a; ? ? a=b; ? ? b=t; }
如果大家是要寫類的話,可以將函數(shù)定義寫在class中,也可以寫在class外(在同一個(gè)頭文件中)
結(jié)果展示
同樣也支持調(diào)試喲
vscode編譯多個(gè)C++文件
tips:
launch.json中的preLaunchTask對(duì)應(yīng)的是task.json中的label,兩個(gè)名字一樣,也就是說,運(yùn)行l(wèi)aunch.json文件之前,需要首先運(yùn)行task.json文件,將cpp文件編譯鏈接成.exe的可執(zhí)行文件,launch.json通過"program": “{fileDirname}\${fileBasenameNoExtension}.exe”,直接進(jìn)入編譯鏈接后的可執(zhí)行文件main.exe。
launch.json:
task.json:
問題
VScode編譯多個(gè)Cpp文件時(shí),報(bào)錯(cuò)顯示找不到關(guān)聯(lián)文件。
解決方法
需要修改task.json文件。
可以先在當(dāng)前文件目錄下新建一個(gè)out文件,這樣生成的.exe可執(zhí)行文件就都存在這個(gè)目錄下,不會(huì)和.cpp文件混在一起,目錄結(jié)構(gòu)更清晰。這時(shí)候需要同時(shí)修改launch.json文件。
文件目錄如下:
task.json:
"args": [ "-fdiagnostics-color=always", "-g", // 編譯單個(gè)文件 // "${file}", // 只能編譯一個(gè)文件 // "-o", // "${fileDirname}\\out\\${fileBasenameNoExtension}.exe" // 這里的out文件需要新建 // 編譯多個(gè)文件 "${fileDirname}\\*.cpp", // 只需要修改這一行,編譯鏈接所有的cpp文件 "-o", "${fileDirname}\\out\\${fileBasenameNoExtension}.exe", // 這里也有out文件 ],
launch.json:
"program": "${fileDirname}\\out\\${fileBasenameNoExtension}.exe", // 添加out文件
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
STL區(qū)間成員函數(shù)及區(qū)間算法總結(jié)
這篇文章主要匯總介紹了STL區(qū)間成員函數(shù)及區(qū)間算法,有需要的小伙伴可以參考下。2015-07-07Visual Studio 如何創(chuàng)建C/C++項(xiàng)目問題
這篇文章主要介紹了Visual Studio 如何創(chuàng)建C/C++項(xiàng)目問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02C語言學(xué)習(xí)之標(biāo)識(shí)符的使用詳解
C語言標(biāo)識(shí)符是用于表示變量、函數(shù)、常量、類型等程序元素的名稱,這篇文章將通過一些簡(jiǎn)單的示例為大家介紹一下C語言標(biāo)識(shí)符的使用,需要的可以參考一下2023-05-05C++實(shí)現(xiàn)LeetCode(96.獨(dú)一無二的二叉搜索樹)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(96.獨(dú)一無二的二叉搜索樹),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C/C++函數(shù)參數(shù)聲明解析int?fun()?與?int?fun(void)?的區(qū)別講解
C++中int fun()和int fun(void)的區(qū)別在于函數(shù)參數(shù)的聲明方式,前者默認(rèn)允許任意參數(shù),而后者表示沒有參數(shù),通過清晰的實(shí)例源代碼,詳細(xì)解釋了它們?cè)诤瘮?shù)聲明和調(diào)用中的不同之處,這篇文章介紹了C/C++函數(shù)參數(shù)聲明int?fun()與int?fun(void)的差異,需要的朋友可以參考下2024-01-01QT連接Mysql數(shù)據(jù)庫的實(shí)現(xiàn)步驟
本文主要介紹了QT連接Mysql數(shù)據(jù)庫的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06C語言實(shí)現(xiàn)旅游景點(diǎn)咨詢系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)旅游景點(diǎn)咨詢系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12