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

目录

  • 🌕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.rhkb.cn/news/419805.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔试。牛客.C-消减整数力扣.最长上升子序列(dp)牛客.最长上升子序列(二) (贪心+二分)牛客.爱吃素

目录 牛客.C-消减整数 力扣.最长上升子序列(dp) 牛客.最长上升子序列(二) (贪心二分) 牛客.爱吃素 牛客.C-消减整数 开始的时候我还以为是什么&#xff0c;结果数学才是根本 import java.util.*; public class Main{public static void main(String[]args){Scanner innew Sc…

Linux网络编程2——多进程编程

一.进程 1.概念复习 程序&#xff1a;程序(program)是存放在磁盘文件中的可执行文件 进程&#xff1a;程序的执行实例被称为进程(process)。 进程具有独立的权限与职责。如果系统中某个进程崩溃&#xff0c;它不会影响到其余的进程。每个进程运行在其各自的虚拟地址空间中&a…

Docker打包镜像

Docker打包镜像 前置工作 1.虚拟机中配置好docker环境&#xff0c;并导入nginx&#xff0c;mysql&#xff0c;jdk的镜像 2.下载docker for windows 用idea打包镜像和创建容器需要这个东西支持 下载安装包后执行&#xff0c;无脑回车即可 3.idea中配置docker连接 完成配置后&…

WPS Office for Linux 12 个人版上线deepin 23商店:UI 视觉重构,新增多项 AI 功能

查看原文 全新WPS Office For Linux个人版&#xff08;12.1.0.17881&#xff09;与deepin 23的AI功能深度融合&#xff0c;正式上架在社区商店啦&#xff01; 这是 Linux 版本的一次里程碑式的重大更新。在产品能力层面上&#xff0c;在 deepin 23 上WPS Office 几乎实现了与 …

AMD MI300X vs Nvidia H100/H200:AI计算领域的新一轮较量

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;计算引擎的性能竞赛也愈演愈烈。近期&#xff0c;MLCommons发布的最新AI训练和推理基准测试结果&#xff0c;他们构建了一套 MLPerf AI 训练和推理基准&#xff0c;将AMD的Instinct“Antares”MI300X GPU与Nv…

软件开发人员从0到1实现物联网项目:项目架构的思考

文章目录 前言单体应用足矣摒弃传统的微信对接后期的维护投入上真正的“云”&#xff1a;云托管0服务器免运维免费的CDN和DDoS防护 技术架构小结 前言 因为种种原因&#xff0c;《软件开发人员从0到1实现物联网项目》这个项目的进度停滞了将近一个月。 鉴于该项目的前期开发和…

【hot100篇-python刷题记录】【跳跃游戏 II】

R7-贪心算法 目录 方法1&#xff1a; 方法2&#xff1a; 很贪心啊&#xff0c;局部最优解就是全局最优解&#xff0c;要求到达nums[n-1]的最小步数&#xff0c;我们每一步都走最远。 方法1&#xff1a; class Solution:def jump(self, nums: List[int]) -> int:nlen(n…

【车载开发系列】ParaSoft入门介绍

【车载开发系列】ParaSoft入门介绍 【车载开发系列】ParaSoft入门介绍 【车载开发系列】ParaSoft入门介绍一. ParaSoft的背景二. 设计理念三. ParaSoft C/CTest简介四. 具备常用功能1&#xff09;静态代码分析2&#xff09;代码覆盖率分析3&#xff09;模糊测试4&#xff09;自…

AI边缘控制器:重塑工业自动化与控制的新篇章

在智能制造和工业4.0的浪潮下&#xff0c;AI边缘控制器作为新一代智能控制设备&#xff0c;正逐步成为推动工业自动化与数字化转型的关键力量。这类基于x86架构的高性能IPC&#xff08;工业个人计算机&#xff09;形态产品&#xff0c;不仅继承了传统PC的可扩展性、开放性和可视…

RPKI应急管控网络拓扑搭建

应急管控网络拓扑搭建 一、网络拓扑图 二、拓扑配置 1.资源库批量导入roas 在rpki.qcl.edu.cn服务器上的/usr/local/rpki/目录下执行脚本 sh roa_get.sh add#!/bin/dash# TODO Aadd Rremove start10000 sum254 run(){for i in seq 1 20dofor j in seq 1 250doas_numberexpr…

深度学习中常见的损失函数

关注B站可以观看更多实战教学视频&#xff1a;hallo128的个人空间 深度学习中常见的损失函数 损失函数的作用 损失函数是衡量神经网络输出与真实标签之间差距的指标。在训练过程中&#xff0c;神经网络的目标是最小化损失函数的值。常见的损失函数包括均方误差&#xff08;MS…

弗洛伊德(Floyd)算法(C/C++)

弗洛伊德算法&#xff08;Floyds algorithm&#xff09;&#xff0c;又称为弗洛伊德-沃尔什算法&#xff08;Floyd-Warshall algorithm&#xff09;&#xff0c;是一种用于在加权图中找到所有顶点对之间最短路径的算法。这个算法适用于有向图和无向图&#xff0c;并且可以处理负…

网络层 VIII(网络层设备——路由器)【★★★★★★】

一、冲突域与广播域 这里的“域”表示冲突或广播在其中发生并传播的区域。 1. 冲突域 冲突域是指连接到同一物理介质上的所有结点的集合&#xff0c;这些结点之间存在介质争用的现象&#xff08;能产生冲突的所有设备的集合&#xff09;。也就是说&#xff0c;若这些设备同时发…

「滚雪球学MyBatis」教程导航帖(已完结)

写在前面 我是bug菌&#xff0c;CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家&#xff0c;C站博客之星Top30&#xff0c;华为云2023年度十佳博主&#xff0c;掘金多年度人气作者Top40&#xff0c;掘金等各大社区平台签约作者&#xff0c;51CTO年度博…

酒茶香链接心灵——探寻现代人幸福生活

科技在飞速发展&#xff0c;人类社会以前所未有的速度向前跃进&#xff0c;物质世界的繁荣达到了前所未有的高度。 然而&#xff0c;这光鲜的背后&#xff0c;却无形中拉远了人与人之间的距离&#xff0c;割裂了传统文化的根脉。 传统文化势弱、“快餐文化”层出不穷&#xff0…

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤&#xff08;UserCF&#xff09;2. 基于物品的协同过滤&#xff08;ItemCF&#xff09;3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过…

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Xilinx FPGA 原语解析(二):IBUFDS差分输入缓冲器(示例源码及仿真)

目录 前言&#xff1a; 一、原语使用说明 二、原语实例化代码模版 三、使用示例 1.设计文件代码 2.仿真文件代码 3.仿真结果 前言&#xff1a; 本文主要参考资料xilinx手册&#xff0c;《Xilinx 7 Series FPGA and Zynq-7000 All Programmable SoC Libraries Guide for…

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

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

【自考zt】【软件工程】【21.10】

关键字&#xff1a; 软件需求基本性质、软件系统需求挑战、耦合&#xff08;高内容&#xff0c;低无直接&#xff09;、内聚&#xff08;初始化时间&#xff09;、uml包、rup边界类、测试首要目标、单元测试最后工作、性能需求 软件开发本质、软件需求规约三种风格、提炼、用…