当前位置: 首页 > news >正文

【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.mrgr.cn/news/22758.html

相关文章:

  • 论文学习:常用的遥感参数
  • 沃尔玛活跃卖家一年内增长50%,突破15万!沃尔玛新店铺如何快速出单?
  • 攻防世界--->点燃我
  • 为何在106短信群发前需完成实名认证?
  • 大模型RAG实战|构建知识库:文档和网页的加载、转换、索引与存储
  • 操作word 以及pdf 记录以及踩坑总结
  • TD综合教程——噪波球和正交线性脉冲(附思路和工程文件)
  • m4v是什么格式?m4v转mp4方法(2024最新)
  • 学习Linux第二天
  • [C++]五、数组
  • 十年后的web渗透(网络安全)前景如何?你想知道的都在这里
  • 网络编程项目(速递项目)
  • C语言代码练习
  • Aigtek:功率放大器一般由什么组成
  • 孟德尔随机化的术语理解
  • 网络编程(学习)2024.9.4
  • 打造专业级PPT:用Python-pptx精准编辑图表属性
  • 【Python】PyPandoc:批量文件格式转换
  • 9月9日听IoT讲座
  • stack,queue的模拟实现,deque的模拟实现和小知识点的杂糅