日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

C++在vscode中的多文件編程問(wèn)題解讀_C 語(yǔ)言

作者:_ccd_yuan_ ? 更新時(shí)間: 2023-02-15 編程語(yǔ)言

C++在vscode中的多文件編程

相信有很多的小伙伴在一開(kāi)始的時(shí)候,都會(huì)對(duì)vscode的多文件編程有很多的疑問(wèn),網(wǎng)上也有很多的教學(xué),不過(guò)網(wǎng)上的解決方法都會(huì)對(duì)一些json文件進(jìn)行修改,或者使用cmake寫(xiě)命令來(lái)操作,不過(guò)即使有這么多的教學(xué)我也還是沒(méi)有完全學(xué)會(huì)。

所以今天我將給大家介紹一種方法可以不用修改json或者使用cmake就能夠?qū)崿F(xiàn)vcsode中C++的多文件操作。

首先我們需要?jiǎng)?chuàng)建幾個(gè)需要的文件,比如main.cpp 、my_swap.h(這里就用my_swap來(lái)做例子)注意我們不需要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ù)定義寫(xiě)入
{
? ? int t=a;
? ? a=b;
? ? b=t;
}

如果大家是要寫(xiě)類的話,可以將函數(shù)定義寫(xiě)在class中,也可以寫(xiě)在class外(在同一個(gè)頭文件中)

結(jié)果展示

同樣也支持調(diào)試喲

vscode編譯多個(gè)C++文件

tips:

launch.json中的preLaunchTask對(duì)應(yīng)的是task.json中的label,兩個(gè)名字一樣,也就是說(shuō),運(yùn)行l(wèi)aunch.json文件之前,需要首先運(yùn)行task.json文件,將cpp文件編譯鏈接成.exe的可執(zhí)行文件,launch.json通過(guò)"program": “{fileDirname}\${fileBasenameNoExtension}.exe”,直接進(jìn)入編譯鏈接后的可執(zhí)行文件main.exe。

launch.json:

image-20220812161319243

task.json:

image-20220812161413209

問(wèn)題

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文件。

文件目錄如下:

image-20220812162753279

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é)

原文鏈接:https://blog.csdn.net/m0_66230497/article/details/122374106

欄目分類
最近更新