2025-03-25 14:37:00

Урок 1. Установка среды разработки Си.

Язык программирования Си является компилируемым языком программирования общего назначения со статической типизацией. Среди главных достоинств языка можно выделить три характеристики:

  • Универсальность. Код может быть скомпилирован на любой платформе, для которой есть компилятор.
  • Быстродействие. На сегодняшний день, язык Си обладает самой высокой скоростью выполнения программ, опережая даже современный Golang.
  • Компактность. После компиляции программы готовый файл занимает минимум места.

Что бы писать программы на Си достаточно иметь любой текстовый редактор и компилятор, который переведет написанный вами текст в понятные компьютеру инструкции.

Установка MSYS2.

Для компиляции будем использовать пакет MSYS2. Скачайте установщик с официального сайта и запустите скачанный файл. Введите желаемую папку установки (короткий путь только в ASCII-символах на томе NTFS, без пробелов). 

После окончания установки нажмите Finish.

Если установка прошла успешно, то откроется окно терминала UCRT64.

Ведите команду, которая установит набор инструментов MinGW-w64.

$ pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain

В окне терминала отобразится информация о пакетах, которые будут инсталлированы и программа будет ждать вашего согласия. Нажмите «Enter», чтобы продолжить установку. 

После установки добавьте путь к папке bin пакета MinGW-w64 в переменные среды Windows, выполнив следующие действия:

  1. Нажмите сочетание клавиш Win + R и введите в строке sysdm.cpl.
  2. В открывшемся окне выберите вкладку "Дополнительно" и нажмите на кнопку "Переменные среды...".
  3. В разделе "Переменные среды пользователя" выберите переменную "Path" и нажмите «Изменить» .
  4. Нажмите "Создать" и добавьте в список путь до папки с MinGW-w64. Если вы использовали настройки по умолчанию, то это будет: C:\msys64\ucrt64\bin.
  5. Нажмите OK , а затем снова на OK в окне "Переменные среды", чтобы обновить значения Path. Заново откройте консоль, чтобы новые значения стали доступны.

Проверьте что все пакеты правильно установились. Для этого введите команды:

$ gcc --version

$ g++ --version

$ gdb --version

После каждой команды должно появится сообщение с версией установленного пакета

Теперь можно переходить к установке текстового редактора для написания кода. В качестве оптимального решения лучше использовать VisualStudioCode.. Данная программа легко настраивается для работы с любым языком программирования после установки соответствующих плагинов.

Установка и настройка VS Code.

Скачайте и установите программу. После установки добавьте расширение C++. Для этого нажмите сочетание клавиш Ctrl+Shift+X. В строке поиска введите С++ и выберите расширение от компании Microsoft C/C++ Extension Pack

Теперь создайте папку HelloWorld, а внутри нее папку .vscode с  точкой перед именем. Это можно сделать при помощи команд в консоле:

mkdir HelloWorld

cd HelloWorld

mkdir .vscode

code .

После этого создайте в директории HelloWorld тестовый файл с расширением .cpp, например, hello.cpp, а в папке .vscode

файлы с конфигурациями tasks.json, settings.json, launch.json, c_cpp_properties.json

Добавьте в hello.cpp тестовый код:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};

    for (const string& word : msg)
    {
        cout << word << " ";
    }
    cout << endl;
}

В файл tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "g++.exe build active file",
            "command": "C:/msys64/ucrt64/bin/g++.exe",
            "args": [
                "-std=c++17",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "C:/msys64/ucrt64/bin/"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        },
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe build active file",
            "command": "C:/msys64/ucrt64/bin/g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "C:/msys64/ucrt64/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ]
}

В файл settings.json

{
    "files.associations": {
        "ostream": "cpp",
        "iostream": "cpp",
        "iomanip": "cpp",
        "chrono": "cpp",
        "iosfwd": "cpp",
        "thread": "cpp",
        "array": "cpp",
        "string_view": "cpp",
        "initializer_list": "cpp",
        "utility": "cpp",
        "valarray": "cpp",
        "optional": "cpp",
        "sstream": "cpp"
    }
}

В файл launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/msys64/ucrt64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "g++.exe build active file",
            "internalConsoleOptions": "neverOpen"
        }
    ]
}

И в файл c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**", 
                "C:/msys64/mingw64/include/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "8.1",
            "compilerPath": "C:/msys64/ucrt64/bin/g++.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x86"
        }
    ],
    "version": 4
}

Теперь можно скомпилировать приложение. Наберите в терминале команду:

g++ hello.cpp -o hello.exe

или выберите  RUN на верхней панеле справа

Если компиляция выдает ошибку проверьте пути до компилятора в конфигурационных файлах.

Комментарии ()