【C++】windwos下vscode多文件项目创建、编译、运行

news2024/11/23 12:55:14

目录

  • 🌕vscode多文件项目创建方法
    • 🌙具体案例
      • ⭐命令行创建项目名,并在vscode中打开项目
      • ⭐创建include目录和头文件
      • ⭐创建src目录和cpp文件
      • ⭐根目录下创建main.cpp
  • 🌕运行项目失败(找不到include目录下的头文件和src目录下的文件)
    • 🌙修改tasks.josn文件的参数(绝对路径法)
    • 🌙修改tasks.josn文件的参数(相对路径法)(推荐)
    • 🌙原理

🌕vscode多文件项目创建方法

官方给的vscode创建c/c++项目的方法
在这里插入图片描述

🌙具体案例

⭐命令行创建项目名,并在vscode中打开项目

比如要在 C:\Users\123\Desktop\Bruce\C++_Code目录下创建一个职工管理系统项目,名为Employee_Management

进入目标文件夹

cd C:\Users\123\Desktop\Bruce\C++_Code

创建项目Employee_Management

mkdir Employee_Management

在该项目下启动vscode

cd Employee_Management
code .

这样创建的项目会自动生成文件 .vscode
在这里插入图片描述

该目录下会自动生成配置文件 tasks.json

⭐创建include目录和头文件

在Employee_Management项目下创建include文件夹和

在include文件夹下创建workerManager.h头文件

#pragma once
#include<iostream>
using namespace std;

class WorkerManager
{
public:
    //构造函数
    WorkerManager();

    //展示菜单
    void showMenu();

    //析构函数
    ~WorkerManager();

};

⭐创建src目录和cpp文件

#include "workerManager.h"

WorkerManager::WorkerManager()
{


}

void WorkerManager::showMenu()
{
    cout<<"****************************************************"<<endl;
    cout<<"******************0.退出管理程序*********************"<<endl;
    cout<<"******************1.增加职工信息*********************"<<endl;
    cout<<"******************2.显示职工信息*********************"<<endl;
    cout<<"******************3.删除离职员工*********************"<<endl;
    cout<<"******************4.修改职工信息*********************"<<endl;
    cout<<"******************5.查找职工信息*********************"<<endl;
    cout<<"******************6.按照编号排序*********************"<<endl;
    cout<<"******************7.清空所有文档*********************"<<endl;
    cout<<"****************************************************"<<endl;
    //换行
    cout<<endl;
}


WorkerManager::~WorkerManager()
{


}

⭐根目录下创建main.cpp

#include<iostream>
using namespace std;
#include "workerManager.h"

int main()
{
    //声明一个管理系统类
    WorkerManager wm;
    wm.showMenu();
    system("Pause");
    return 0;
}

🌕运行项目失败(找不到include目录下的头文件和src目录下的文件)

🌙修改tasks.josn文件的参数(绝对路径法)

修改.vscode目录下的tasks.json文件

在这里插入图片描述

修改-g后的参数为src下面的workerManager.cpp的绝对路径。
修改-I后面的参数为include目录的绝对路径。
 "-g","${file}","C:\\Users\\X2006600\\Desktop\\Bruce\\C++_Code\\Employee_Management\\src\\workerManager.cpp",
 "-I","C:\\Users\\X2006600\\Desktop\\Bruce\\C++_Code\\Employee_Management\\include",
完整的tasks.json文件
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "C:\\Users\\X2006600\\Desktop\\MinGW\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g","${file}","C:\\Users\\X2006600\\Desktop\\Bruce\\C++_Code\\Employee_Management\\src\\workerManager.cpp",
                "-I","C:\\Users\\X2006600\\Desktop\\Bruce\\C++_Code\\Employee_Management\\include",
                "-o","${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}
修改之后运行成功。

🌙修改tasks.josn文件的参数(相对路径法)(推荐)

将tasks.json文件的 -g和-I后面的参数改为如下内容:

"-g","${file}","${fileDirname}\\src\\*.cpp",
"-I","${fileDirname}\\include",

这样写之后,转移项目的位置不再需要重新设定-g和-I后的绝对路径。

${fileDirname}:获取当前项目的绝对路径
*.cpp": 通配符,代表所有后缀为.cpp的文件

假如我的项目在C:\Users\123\Desktop\Bruce\C++_Code\Employee_Management路径下,上面的代码在编译时等于如下的代码:

 "-g","${file}","C:\\Users\\123\\Desktop\\Bruce\\C++_Code\\Employee_Management\\src\\*.cpp",
 "-I","C:\\Users\\123\\Desktop\\Bruce\\C++_Code\\Employee_Management\\include",

完整的tasks.json文件如下:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "C:\\Users\\X2006600\\Desktop\\MinGW\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g","${file}","${fileDirname}\\src\\*.cpp",
                "-I","${fileDirname}\\include",
                "-o","${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

🌙原理

g++是通过命令来运行c++项目的。其中:

-g是生成调试信息
-I后面跟头文件的目录
-o是设置编译main.cpp文件后的输出的.exe文件的名称

要运行上面的项目g++命令为:

g++ 
-g C:\\Users\\X2006600\\Desktop\\Bruce\\C++_Code\\Employee_Management\\src\\workerManager.cpp
-I C:\\Users\\X2006600\\Desktop\\Bruce\\C++_Code\\Employee_Management\\include
-o main.cpp
把该命令写到tasks.json对应的位置,因此成功运行该项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2118430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实习生进了公司不会开发?一个真实业务教会你如何分析业务!

一、权限业务介绍 本业务为个人试用期的时候的真实企业级业务&#xff0c;进行了简单的替换词和业务内容模糊&#xff0c;但是业务逻辑没有变化&#xff0c;值得学习&#xff0c;代码部分可能因为替换词有部分误解&#xff0c;发现问题请评论区提醒我。 这个业务教会了我&…

最新前端开发VSCode高效实用插件推荐清单

在此进行总结归类工作中用到的比较实用的、有助于提升开发效率的VSCode插件。大家有其他的好插件推荐的也欢迎留言评论区哦&#x1f604; 基础增强 Chinese (Simplified) Language Pack: 提供中文界面。 Code Spell Checker: 检查代码中的拼写错误。 ESLint: 集成 ESLint&…

AIoTedge边缘计算+边缘物联网平台

在数字化转型的浪潮中&#xff0c;AIoTedge边缘计算平台以其边云协同的架构和强大的分布式AIoT处理能力&#xff0c;正成为推动智能技术发展的关键力量。AIoTedge通过在数据源附近处理信息&#xff0c;实现低延迟、快速响应&#xff0c;增强了应用的实时性。同时&#xff0c;它…

CCF推荐C类会议和期刊总结:(计算机网络领域)

CCF推荐C类会议和期刊总结&#xff08;计算机网络领域&#xff09; 在计算机网络领域&#xff0c;中国计算机学会&#xff08;CCF&#xff09;推荐的C类会议和期刊为研究者提供了广泛的学术交流平台。以下是对所有C类会议和期刊的总结&#xff0c;包括全称、出版社、dblp文献网…

DMDPC单副本集群安装

1. 环境描述 2. 部署步骤 2.1. 安装DM数据库软件启动DMAP [dmdbalei1 ~]$ DmAPService status DmAPService (pid 1269) is running.2.2. 初始化数据库实例 [dmdbalei1 data]$ dminit path/dmdba/data/sp1 instance_nameSP1 port_num5236 ap_port_num6000 dpc_modeSP initdb …

野火霸天虎V2学习记录

文章目录 嵌入式开发常识汇总1、嵌入式Linux和stm32之间的区别和联系2、stm32程序下载方式3、Keil5安装芯片包4、芯片封装种类5、STM32命名6、数据手册和参考手册7、什么是寄存器、寄存器映射和内存映射8、芯片引脚顺序9、stm32芯片里有什么10、存储器空间的划分11、如何理解寄…

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6&#xff1a;深入图形与图形分组、自定义节点、节点动画&#xff08;下&#xff09;_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中&#xff0c;应该怎样去计算和绘制图形&#xff0c;如何给一个图形制作不间断的动画&#xff0c;以及在鼠…

长芯微国产LS0104电平转换器/电平移位器P2P替代TXS0104

LS0104这个4位非反相转换器是一个双向电压电平转换器&#xff0c;可用于建立数字混合电压系统之间的切换兼容性。它使用两个单独的可配置电源轨支持1.65V至5.5V工作电压的端口同时它跟踪VCCA电源和支持的B端口工作电压从2.3V到5.5V&#xff0c;同时跟踪VCCB供应。这允许更低和更…

【C++】stackqueuedeque

目录 一、stack&#xff1a; 1、栈的介绍&#xff1a; 2、栈的使用&#xff1a; 3、栈的成员函数的模拟实现&#xff1a; 二、queue: 1、队列的介绍&#xff1a; 2、队列的使用&#xff1a; 3、队列的模拟实现&#xff1a; 三、deque&#xff1a; deque的底层结构&am…

电脑丢失msvcp120.dll问题原因及详细介绍msvcp120.dll丢失的解决方法

在使用 Windows 操作系统时&#xff0c;你可能会遇到一个常见的错误提示&#xff1a;“程序无法启动&#xff0c;因为计算机中丢失 msvcp120.dll”。这个错误通常意味着你的系统中缺少了一个重要的动态链接库文件&#xff0c;即msvcp120.dll。这个文件是 Microsoft Visual C 20…

一文读懂SpringMVC的工作原理

前言 MVC是经典的软件架构设计模式&#xff0c;几乎在各个领域各种开发语言中&#xff0c;均采纳了这个思想。此刻博主突然想到了Thinking in xxx系列设计书籍。换句话说&#xff0c;就是“各人自扫门前雪”和“术业有专攻”。当职责分配得当后&#xff0c;剩下的就是发挥各“…

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件&#xff0c;然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它&#xff0c;快速获取到想要知道的信息。https://www.chatpdf.com/

全志A527 A133 A523 T527 T133 H6 H8应用无法开启后台服务

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改4.1 代码修改方法14.2 代码修改方法24.3 代码修改方法35.彩蛋1.前言 像全志的很多平台,普通的app并不能正常的启动后台的服务,这样对于应用层很困扰,无法启动后台的服务,功能就不能正常使用…

2024最新软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫###&#xff0c;今年26岁&#xff0c;来自江西九江&#xff0c;就读专业是电子商务&#xff0c;毕…

新160个crackme - 052-tc.2

运行分析 提示选择Keyfile&#xff0c;选择后弹出错误的Keyfile&#xff0c;需要先破解Keyfile还需要破解Name和Serial PE分析 Delphi程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 ida找到Keyfile关键字符串&#xff0c;双击进入 ida动态调试&#xff0c;找到关…

moment() 时间

指定日期月初/月末 moment(自定义时间) 当月月初&#xff08;假设当月8月&#xff09;2024-08-01 00:00:00 moment().startOf(“month”).format(“YYYY-MM-DD HH:mm:ss”) 当月月末 2024-08-31 23:59:59 moment().endOf(“month”).format(“YYYY-MM-DD HH:mm:ss”) 加法 ad…

【小项目】python贪吃蛇小游戏设计

引入pygame库 添加pygame库&#xff0c;在cmd中输入以下代码&#xff0c;进行安装。如果输入pip install pygame出现以下报错&#xff0c;可以尝试在前面加入python3 -m。 python3 -m pip install pygame 贪吃蛇代码 import pygame import time import random# 初始化 Pygam…

使用yolov8识别+深度相机+机械臂实现垃圾分拣机械臂(代码分享)

文章目录 垃圾分拣机械臂视频演示程序主代码完整代码链接 垃圾分拣机械臂 视频演示 点击查看 使用YoloV8做的目标检测&#xff0c;机械臂手眼标定使用Aruco的方式&#xff0c;通过深度相机获取三维坐标&#xff0c;与机械臂坐标系之间的转化&#xff0c;得到抓取的坐标深度相…

猜数游戏-Rust 入门经典案例

文章目录 发现宝藏1. 项目概述2. 项目结构3. 实现游戏4. 依赖管理5. 测试6. 改进和扩展7. 总结 发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【宝藏入口】。 在这篇博客中&#xff0c;我们将…

网站钓鱼——挂马技术手段介绍

更多网安实战内容&#xff0c;可前往无问社区查看http://wwlib.cn/index.php/artread/artid/10194.html 网站挂马目前已经成为流氓软件以及红队人员快速获取目标主机权限的常用手段之一&#xff0c;在长时间的实战中也是出现了层出不穷的钓鱼方法&#xff0c;这次分享一下实际…