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