目录
- 🌕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对应的位置,因此成功运行该项目。