برنامه نویسی

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 (می توانید هر نام را در زیر پیکربندی کنید

CPP اشکال زدایی

{
    "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 پوشه
خروجی CPP

عالی! اکنون می توانیم برنامه را در VS Code اشکال زدایی و اجرا کنیم.
چه بعدی؟ اگر می خواهید یک برنامه دیگر ایجاد کنید ، کافی است این پوشه پروژه را کپی کرده و پرونده های خود را جایگزین کنید تا برنامه خود را اجرا و اشکال زدایی کنید.

فکر خود را در این باره به من اطلاع دهید ، از پیشنهادات شما استقبال می شود.

برنامه نویسی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا