BoilerPlate Project برای اشکال زدایی و اجرای کد C ++ در VS Code

این پست در ابتدا در وبلاگ من در اینجا ارسال شده است
من اجرای پروژه CPP را در VS Code همیشه دشوار دانستم ، ما باید پیکربندی زیادی را انجام دهیم ، برای اشکال زدایی کد.
در این پست می توانید BoilerPlate را برای اجرای کد CPP در VS Code پیدا کنید.
پیش نیاز
- اطمینان حاصل کنید که کامپایلر CPP که قبلاً در دستگاه شما نصب شده است ، من از GCC استفاده می کنم اما می توانید از هر کامپایلر دیگری از انتخاب خود استفاده کنید
- کد VS باید در دستگاه شما نصب شود.
- (اختیاری) افزونه “C/C ++ Extension Pack” را نصب کنید ، این برنامه C/C ++ را نصب می کند و CMake (ما در حال حاضر به Cmake احتیاج نداریم ، من آموزش جداگانه ای را برای ساخت پروژه با استفاده از CMake می نویسم)
پوشه جدیدی برای پروژه CPP خود ایجاد کنید
من قصد دارم ساختار پوشه زیر را برای پروژه خود دنبال کنم و در بقیه آموزش برای نوشتن فایلهای پیکربندی همان را دنبال خواهم کرد
Boilerplate
│ main.cpp # CPP file contains main function
│
└───build # Build file (Executable / Binary )
│ │ main.exe
└───include # All header files in project
| │ student.h
| │ Employee.h
└───src # All source files in project
| │ student.cpp
| │ Employee.cpp
└───lib # Third party libraries
| │ spdlog
| └───include
│ │ spdlog
│ c_cpp_properties.json
│ launch.json
│ tasks.json
│ settings.json
بیایید استفاده از هر پرونده JSON را که در بالا ذکر شد مشاهده کنیم
c_cpp_properties.json – پیکربندی Intellisense و کامپایلر
این پرونده پیکربندی در کد VS برای Intellisense ، پیشنهادات کد و برجسته سازی نحو برای کد C/ C ++ است.
این تعریف شامل مسیرها ، تنظیمات کامپایلر و نسخه های استاندارد است.
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/include", // Add your header directory
"${workspaceFolder}/libs/**" // Add third party library directory
],
"defines": [],
"compilerPath": "D:\\Installation\\mingw\\mingw64\\bin\\g++.exe", // Add path of your compiler
"cppStandard": "c++20",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
Tasks.Json – ساخت اتوماسیون
این پرونده نحوه ساخت و سازگاری کد را مشخص می کند و به اتوماسیون پروژه تلفیقی کمک می کند.
ما می توانیم از Ctrl + Shift + B برای ساخت کد CPP استفاده کنیم.
این پرونده شامل Path of Header ، پرونده های منبع ، کتابخانه های شخص ثالث (در صورت وجود) و پرونده خروجی است.
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "Build Main",
"command": "D:\\Installation\\mingw\\mingw64\\bin\\g++.exe", //add path of your compiler
"args": [
"-fdiagnostics-color=always",
"-g",
"main.cpp", //by default run main file
"${workspaceFolder}/src/*.cpp", //additional files
"-I${workspaceFolder}/include", // Include directory flag
"-I${workspaceFolder}/libs/spdlog/include", // Include third party library
"-o",
"${workspaceFolder}/build/main.exe"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": ["$gcc"],
"group": "build",
"detail": "Building main.exe in workspace root"
}
]
}
مهم:
اگر ایجاد می کنید
tasks.json
با استفاده از عملکرد کد VS ، سپس نوع پیش فرض به عنوانcppbuild
، در این حالت شما باید مسیر همه پرونده های منبع را یک به یک اضافه کنید.برای اینکه عمومی تر شود ، ما مسیر فایل منبع را به عنوان اضافه کرده ایم
"${workspaceFolder}/src/*.cpp"
این با کار نمی کندcppbuild
بنابراین نوع را بهshell
اکنون ، هر زمان که پرونده منبع جدیدی را به پروژه اضافه کنیم ، نیازی به اصلاح نیست
tasks.json
پروندهتوجه:
در استدلال ها ، ما گذشتیم
-g
باmain.cpp
برای اشکال زدایی پرونده اگر نمی خواهید عبور کنیدmain.cpp
، سپس می توانیم ذکر کنیم"$(file)"
برای اشکال زدایی پرونده فعلی.
launch.json – تنظیم اشکال زدایی
این پیکربندی Conatins برای اشکال زدایی محیط ، این تعریف ، اشکال زدایی و نحوه راه اندازی یک برنامه را تعریف می کند.
بدون این پرونده ، VS Code نمی داند چگونه برنامه اشکال زدایی کند.
پس از اضافه کردن این پرونده ، می توانیم گزینه اشکال زدایی را در کشویی در VS Code با نام مشاهده کنیم C++ Debug
(می توانید هر نام را در زیر پیکربندی کنید
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/main.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:\\Installation\\mingw\\mingw64\\bin\\gdb.exe",
"preLaunchTask": "Build Main",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
توجه:
ما اضافه کرده ایم
"preLaunchTask": "Build Main"
، این نام باید دقیقاً همان چیزی باشد که ما در آن تعریف کردیمtasks.json
launch.json
اطمینان حاصل خواهد کرد که پیکربندی که در آن تعریف کرده ایمtasks.json
کاملاً بارگیری شده است.
Settings.Json – فضای کاری و تنظیمات ویرایشگر
این پرونده تنظیمات خاص فضای کاری از جمله هشدارهای قالب بندی ، لینت و کامپایلر را تعریف می کند
{
"files.associations": {
"iostream": "cpp",
"ostream": "cpp"
},
"editor.formatOnSave": true
}
توجه:
این پرونده همچنین می تواند برای سفارشی کردن رفتارهای ویرایشگر یعنی زبانه ها ، فضاها ، ذخیره خودکار و غیره استفاده شود.
این همه چیز است ، حالا بیایید یک کد ساده بنویسیم.
main.cpp
#include
#include
#include "school.h"
using namespace std;
int main(int argc, char const *argv[])
{
school::student s;
s.display(); // Call the display function from the student class
return 0;
}
همانطور که در بالا ذکر شد ، تمام پرونده های هدر ما در داخل پوشه “شامل” قرار می گیرند. بنابراین یکی را برای school.h
مدرسه
#include
using namespace std;
namespace school{
class student{
public:
void display();
};
}
سپس پرونده منبع آن را در داخل پوشه “SRC” ایجاد کنید ، یک فایل منبع به نام ایجاد کنید school.cpp
School.cpp
#include
#include "../include/school.h"
using namespace std;
namespace school
{
void student::display()
{
cout << "Hello from student class!" << endl;
}
}
ساختار پوشه ما چیزی به شرح زیر خواهد بود.
اکنون ، F5 را فشار دهید یا به اشکال زدایی بروید -> “Debug C ++” را از کشویی انتخاب کنید و روی نماد اشکال زدایی کلیک کنید.
این پروژه در جمع آوری و تولید در build
پوشه
عالی! اکنون می توانیم برنامه را در VS Code اشکال زدایی و اجرا کنیم.
چه بعدی؟ اگر می خواهید یک برنامه دیگر ایجاد کنید ، کافی است این پوشه پروژه را کپی کرده و پرونده های خود را جایگزین کنید تا برنامه خود را اجرا و اشکال زدایی کنید.
فکر خود را در این باره به من اطلاع دهید ، از پیشنهادات شما استقبال می شود.
برنامه نویسی مبارک!