VSCode创建C++项目和编译多文件
前言
在刚安装好VSCode后,我简单尝试了仅main.cpp单文件编译代码,没有问题,但是当我尝试多文件编译时,就出现了无法识别cpp文件。
内容
创建项目
- 首先点击左上角“文件”;
- 在菜单中选择“打开文件夹”;
- 在文件夹中右键,添加文件,并命名为main.cpp;
- ctrl+shift+p,进入命令模式
- 输入 task,在弹出的菜单中选择任务:配置默认生成任务

生成文件:tasks.json

6.ctrl+shift+b,项目进行编译

生成文件 main.exe (可执行文件)

我们可以在资源管理器中直接双击main.exe进行执行;也可以在VSCode的终端中使用命令去执行;
多文件编译
在上述创建的项目中,如果我们新建一个sample.h和一个sample.cpp文件:
sample.h文件
#include "iostream"
using namespace std;
class sample
{
private:/* data */
public:sample(/* args */);~sample();string getClassName();
};
sample.cpp文件
#include "sample.h"sample::sample()
{
}sample::~sample()
{
}string sample::getClassName()
{return "Sample";
}
main.cpp文件
#include "iostream"
#include "sample.h"
int main()
{sample s;cout<<s.getClassName()<<endl;return 0;
}
我们再次使用刚刚的方式进行编译: ctrl+shift+b 
可以看见项目编译失败,程序生成失败;
问题出在tasks.json文件中,由任务:配置默认生成任务 生成的tasks文件是不支持编译多个文件的。我们需要修改该文件的一些地方;
修改tasks文件
我们来看tssks.json文件的内容,如果有在linux系统平台上使用gcc编译过c文件的朋友能够看出来,在args键中的内容就是一个编译命令;
回归tasks文件内容上,我们需要修改argsj键的值,具体参考如下:
{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件","command": "D:/mingw/mingw64/bin/g++.exe","args": ["-fdiagnostics-color=always","-g","${workspaceFolder}\\*.cpp","-I","${workspaceFolder}","-o","${workspaceFolder}\\${workspaceFolderBasename}.exe"],"options": {"cwd": "D:/mingw/mingw64/bin"},"problemMatcher": ["$gcc"],"group": "build","detail": "编译器: D:/mingw/mingw64/bin/g++.exe"}]
}
建议去了解一下VSCode 的tasks 文件和类似${workspaceFolder}的意思
下文讲解了Tasks.json文件中的变量
VSCode C++ Tasks.json中的变量-CSDN博客
相关文章:
VSCode创建C++项目和编译多文件
前言 在刚安装好VSCode后,我简单尝试了仅main.cpp单文件编译代码,没有问题,但是当我尝试多文件编译时,就出现了无法识别cpp文件。 内容 创建项目 首先点击左上角“文件”;在菜单中选择“打开文件夹”;在…...
7个提升网站分页体验的 CSS 和 JavaScript 代码片段
文章目录 前言正文1.简洁直观的悬停分页效果2.实时显示页码的分页3.适合响应式设计的多功能分页4.专为移动设备优化的分页5.无数字的极简分页设计6.触屏友好的分页7.结合无限滚动与分页的设计 总结 前言 分页是内容丰富的网站中不可缺少的导航工具,能帮助用户更轻松…...
C++——用带有默认参数的函数实现,求两个整数或三个整数中的最大数。
没注释的源代码 #include <iostream> using namespace std; int max(int a,int b,int c0); int main() { int a,b,c; cout<<"请输入三个整数:"; cin>>a>>b>>c; cout<<"三个整数的最大值是&am…...
对商品分类系统的若干问题的思考
科学研究的目的就是研究事物的特征,并根据共同的特征加以分类 商品分类是商业,制造业中最普遍的活动,几乎所有的企业,电商平台都要对销售的商品,使用的原材料(BOM)进行分类和编号。 商品分类貌似…...
javascript中Number 类型 在实际开发中常用的一些操作方法
在 JavaScript 中,Number 类型是非常基础的数据类型之一,用于表示整数和浮点数。除了基本的算术运算外,还有许多内置的方法可以帮助你处理数字。下面列举了一些在实际开发中常用的 Number 类型的操作方法: 1. 转换方法 Number()…...
部分解决FDTD安装后,matlab指令fopen报错
今天在新的win11电脑上安装FDTD时,发现在C:\Program Files目录中并没有Lumerical文件夹,把激活文件粘贴过去后虽然能正常启动,但对于matlab link FDTD过程中无法响应以下代码: setenv(PATH, [getenv(PATH) ;C:\Program Files\Lum…...
[python3] 处理函数的重试
tenacity是一个 Python 库,用于简化重试逻辑的实现。它提供了装饰器和工具函数,使得在函数执行失败时可以自动重试。以下是对tenacity库的详细介绍: 一、安装 可以使用pip安装tenacity: pip install tenacity二、主要概念和功能…...
鸿蒙开发之ArkTS 界面篇 一
建好一个工程后,右侧可以预览,看到效果,效率十分可以,如图: State message: string 鸿蒙开发入门篇; 这个字符串改成什么,右侧就显示什么 Entry是类装饰器,可以简单的理解为程序入口的必须的装饰器&…...
嵌入式Linux学习笔记(6)-线程处理、线程同步、线程池(c语言实现)
一、概述 线程是一种轻量级的并发执行的机制。线程是进程中的一个实体,它执行在同一进程的上下文中,共享同一内存空间,但拥有独立的栈空间。 C语言的线程使用pthread库实现,通过包含头文件 pthread.h 来使用相关的函数和数据类型 …...
【HTTP】请求“报头”(Host、Content-Length/Content-Type、User-Agent(简称 UA))
Host 表示服务器主机的地址和端口号 URL 里面不是已经有 Host 了吗,为什么还要写一次? 这里的 Host 和 URL 中的 IP 地址、端口什么的,绝大部分情况下是一样的,少数情况下可能不同当前我们经过某个代理进行转发。过程中…...
【刷题日记】43. 字符串相乘
43. 字符串相乘 其实就是大数乘法题,这道题用草稿纸演练一下,其实很好找到方法,模拟大数乘法即可。需要注意的是进位和迭代值,还有注意向下取整和去除前导0(容易遗漏)。去除前导0的时候还要注意如果全是0&…...
Verilog学习之旅~
记录Verilog的学习日常~ 第一阶段:牛客网刷题 1.Verilog快速入门 基础语法 VL1:四选一多路器:case语句、条件表达符; VL2:异步复位的串联T触发器:T触发器的基本功能及代码实现、异步复位的概念; VL3:奇偶校验:缩…...
linux之mysql安装
1:mysql安装包下载 下载地址 可私信我直接获取安装包 2:linux下wget命令下载 下载地址 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz3:手动安装 将自己的安装包上传到对应的位置 解压 压缩包 使用命令 tar -zxvf mysql-5.7…...
单身狗的逆袭之路之开发相亲交友系统
在这个充满机遇与挑战的时代,单身人士渴望找到属于自己的幸福。然而,在忙碌的工作与生活中,他们往往难以抽出时间去拓展社交圈。相亲交友系统的出现,无疑是为这些“单身狗”提供了一个逆袭的机会。通过相亲交友系统,用…...
【Spring】IocDI详解(6)
本系列共涉及4个框架:Sping,SpringBoot,Spring MVC,Mybatis。 博客涉及框架的重要知识点,根据序号学习即可。 有什么不懂的都可以问我,看到消息会回复的,可能会不及时,请见谅!! 目录 本系列共…...
Redis系列之底层数据结构SDS
Redis系列之底层数据结构SDS 实验的环境 Redis 6.0VSCode 1.88.1 什么是SDS? SDS:Simple Dynamic String,翻译为简单动态字符串。SDS是一种用于存储二进制数据的数据结构,具有动态扩容的特点,代码位于src/sds.h和src/sds.c …...
【STM32】esp8266连接wifi
1.配置stm32cubemx 使用串口二接收esp8266的数据,单片机接收,使用串口1将数据发送给串口助手 串口2波特率设置74880,串口1设置115200 在初始化的时候需要将复位引脚拉低20ms,然后再拉高20ms, 设置GPIOB的输出模式 对PB12做输出处理 2.…...
网络运维故障处理
本篇纯是之前的工作经验做一个分享,大家看个热闹就好。 1.突然的断网,在上家上班的时候,有一天突然下午厂区内开始出现大面积网络卡顿,teams,outlook不好使等情况,且网盘也上不去,所以开始排查…...
C++第十一节课 new和delete
一、new和delete操作自定义类型 new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数(new会自动调用构造函数;delete会调用析构函数) class A { public:A(int a 0): _a(a){cout <&l…...
【爱给网-注册安全分析报告-无验证方式导致安全隐患】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…...
Cache 维护实战:深入理解 ARMv8-A 架构下的 Invalidate 与 Clean 操作
1. 为什么需要关注Cache维护? 在嵌入式开发中,Cache就像是你办公桌上的文件架。当你频繁访问某些数据时,CPU会把这些数据放在Cache里,就像把常用文件放在手边一样。但问题来了:如果文件内容更新了(比如内存…...
谷歌Home应用与Gemini Live更新:AI赋能智能家居与新闻交互新体验
谷歌Home应用更新:让智能家居控制更自然本周谷歌对其Home应用进行更新,借助Gemini AI助手,让用户控制智能家居变得“更加自然和可靠”。更新后,用户能以更自然的方式描述需求,如描述灯光类型为“海洋的颜色”ÿ…...
OpenClaw镜像体验:在星图GPU平台快速试用SecGPT-14B安全分析
OpenClaw镜像体验:在星图GPU平台快速试用SecGPT-14B安全分析 1. 为什么选择云平台体验OpenClaw 第一次接触OpenClaw时,我被它的自动化能力吸引,但本地安装过程让我望而却步。作为一个经常需要评估各种AI工具的安全工程师,我发现…...
5个突破点:解锁时空数据金矿的ST-DBSCAN实战指南
5个突破点:解锁时空数据金矿的ST-DBSCAN实战指南 【免费下载链接】st_dbscan ST-DBSCAN: Simple and effective tool for spatial-temporal clustering 项目地址: https://gitcode.com/gh_mirrors/st/st_dbscan 问题发现:被忽视的时空关联密码 为…...
5分钟快速上手:如何在浏览器中免费制作专业演示文稿
5分钟快速上手:如何在浏览器中免费制作专业演示文稿 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing for …...
mPLUG模型隐私保护展示:本地化部署的数据安全优势
mPLUG模型隐私保护展示:本地化部署的数据安全优势 1. 数据安全新选择:本地化部署的价值 在当今数据驱动的时代,隐私保护已经成为企业和个人用户最关心的问题之一。传统的云端AI服务虽然方便,但用户数据需要上传到第三方服务器&a…...
我用 Codex 一段时间后,才发现提示词真正该怎么写
(LetAiCode - AI 编程助手) 大家好呀,我是 Lazy熊。 最近这段时间,我越来越明显地感受到一件事。 很多人在聊 AI 编程的时候,关注点其实都差不多。看模型、看价格、看速度、看功能,或者看哪个工具最近更火。 这些当…...
如何快速实现STL转STEP:面向3D设计新手的完整指南
如何快速实现STL转STEP:面向3D设计新手的完整指南 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 你是否遇到过这样的困境:精心设计的3D打印模型完成后,想要…...
别再对着文档发愁了!手把手教你读懂并配置StrongSwan的ipsec.conf文件
从零到精通:StrongSwan的ipsec.conf实战配置指南 第一次打开ipsec.conf文件时,那些密密麻麻的参数确实让人望而生畏。作为一款功能强大的IPsec实现,StrongSwan的配置文件看似复杂,实则遵循着清晰的逻辑结构。本文将带你从实际应用…...
未来金融的三大走向
1. 智能化加速AI已从辅助决策走向自主交易,量化策略、智能投顾将覆盖更多普通投资者。不懂代码,也能用自然语言下达投资指令。 2. 资产代币化现实世界资产(RWA)上链成为新趋势。房产、债券、甚至艺术品,都可以分割成数…...
