Skip to content

Instantly share code, notes, and snippets.

@bsa7
Last active May 7, 2025 16:14
Show Gist options
  • Save bsa7/8291eb8b5192ce3d44eb6564173cd4c9 to your computer and use it in GitHub Desktop.
Save bsa7/8291eb8b5192ce3d44eb6564173cd4c9 to your computer and use it in GitHub Desktop.
Clang/LLVM

Подробности про MSYS2

MSYS2 — это мощная и гибкая система для разработки на Windows, которая помогает устанавливать и использовать инструменты, такие как Clang/LLVM, для программирования на C++ и других языках. Она особенно полезна для твоего случая — установки Clang/LLVM на Windows 10 для работы с VSCode. Ниже я подробно расскажу, что такое MSYS2, как его установить, настроить и использовать. Всё разбито на разделы и подразделы, чтобы было удобно читать.


1. Что такое MSYS2?

1.1. Определение

MSYS2 (Minimal SYStem 2) — это программа для Windows, которая:

  • Дает командную строку, похожую на Linux (например, bash).
  • Включает менеджер пакетов pacman, чтобы легко устанавливать программы и библиотеки.
  • Помогает компилировать код так, чтобы он работал на Windows.

MSYS2 основан на Cygwin, но сделан специально для программистов, чтобы всё было просто и удобно.

1.2. Основные компоненты

MSYS2 состоит из нескольких частей, каждая для своих задач:

  • MSYS: Базовая среда для запуска Linux-утилит (например, bash). Используется для обновлений системы.
  • MINGW32: Для создания 32-битных программ для Windows.
  • MINGW64: Для создания 64-битных программ (самая популярная, потому что почти все компьютеры сейчас 64-битные).
  • CLANG64, UCRT64: Специальные среды, например, CLANG64 для работы с Clang/LLVM.

Для установки Clang/LLVM мы используем MINGW64, так как оно подходит для 64-битных программ и хорошо работает с VSCode.

1.3. Зачем использовать MSYS2 для Clang/LLVM?

  • Легкая установка: Clang и другие инструменты ставятся одной командой.
  • Новые версии: MSYS2 всегда предлагает свежие версии Clang/LLVM.
  • Библиотеки: Можно легко добавить Boost, fmt и другие библиотеки для C++.
  • Работа с Windows: Clang из MSYS2 создает программы, которые работают на Windows без проблем.
  • Для всех пользователей: После настройки работает даже без прав администратора.

2. Установка MSYS2

2.1. Требования

  • Windows: Windows 10 (64-бит, как у тебя).
  • Права администратора: Нужны для установки и настройки PATH (у тебя есть пароль администратора).
  • Место на диске: Около 1 ГБ для начала, больше для библиотек.
  • Интернет: Чтобы скачать установщик и пакеты.

2.2. Процесс установки

  1. Скачивание установщика:

    • Зайди на www.msys2.org.
    • Скачай msys2-x86_64-latest.exe (для 64-битной Windows 10).
  2. Запуск установщика:

    • Щелкни правой кнопкой мыши на файле → Запуск от имени администратора (введи пароль администратора).
    • Выбери папку для установки, например, C:\msys64 (проверь, что ты можешь туда записывать файлы).
    • Следуй инструкциям, оставляя настройки по умолчанию.
  3. Обновление системы:

    • Запусти MSYS2 MSYS (иконка в меню "Пуск" или C:\msys64\msys2.exe).
    • В терминале выполни:
      pacman -Syu
    • Если терминал закроется (это нормально), снова открой MSYS2 MSYS и выполни:
      pacman -Su

2.3. Проверка установки

  • Запусти MSYS2 MINGW64 (C:\msys64\mingw64.exe).
  • Выполни:
    bash --version
    
    

3. Установка Clang/LLVM через MSYS2

3.1. Выбор окружения

Мы используем MINGW64, потому что оно универсальное и подходит для твоей задачи. Есть ещё CLANG64, но оно нужно только для особых случаев, когда Clang — главный компилятор.

3.2. Установка пакетов

  1. Открытие терминала MINGW64:

    • Запусти MSYS2 MINGW64 из меню "Пуск" или C:\msys64\mingw64.exe.
  2. Установка Clang и инструментов:

    • Выполни:
      pacman -S mingw-w64-x86_64-clang mingw-w64-x86_64-lld mingw-w64-x86_64-lldb
    • Это установит:
      • clang и clang++: Для компиляции C++ кода.
      • lld: Линкер, чтобы программы собирались быстрее.
      • lldb: Отладчик для работы с VSCode.
  3. Проверка установки:

    • Проверь версию Clang:
      clang --version
      Ожидается: clang version 17.0.6 (или новее).
    • Проверь LLDB:
      lldb --version

Это установит Boost и fmt — популярные библиотеки. Инструменты:

pacman -S mingw-w64-x86_64-clang-tools-extra

Включает clang-format для красивого оформления кода.

GDB (альтернатива LLDB):

pacman -S mingw-w64-x86_64-gdb

4. Интеграция MSYS2 с Windows и VSCode

4.1. Добавление MSYS2 в PATH

Чтобы Clang работал в любой командной строке и в VSCode:

  1. Путь к файлам:

    • Clang и другие программы лежат в C:\msys64\mingw64\bin.
  2. Изменение PATH:

    • Открой Панель управленияСистема и безопасностьСистемаДополнительные параметры системы.
    • Нажми Переменные среды (введи пароль администратора).
    • В Системных переменных найди Path, нажми Изменить, добавь:
      C:\msys64\mingw64\bin
      
    • Нажми ОК, чтобы сохранить.
  3. Проверка PATH:

    • Открой Командную строку (cmd) или PowerShell.
    • Выполни:
      clang --version
      Если всё работает, настройка завершена.

4.2. Настройка VSCode

MSYS2 даёт Clang, который легко работает с VSCode. Вот как настроить:

  • Расширение C/C++: Установи его в VSCode для подсказок кода.
  • tasks.json: Для компиляции с Clang. Пример:
  {
    "version": "2.0.0",
    "tasks": [
      {
        "label": "Build with Clang",
        "type": "shell",
        "command": "clang++",
        "args": [
          "-std=c++20",
          "-g",
          "${file}",
          "-o",
          "${fileDirname}\\${fileBasenameNoExtension}.exe"
        ],
        "group": { "kind": "build", "isDefault": true },
        "problemMatcher": ["$gcc"]
      }
    ]
  }

launch.json: Для отладки с LLDB.

c_cpp_properties.json: Для настройки путей к библиотекам и стандарта C++.

Рекомендация: Clang/LLVM

Почему?

  1. Большое сообщество:

    • Clang/LLVM активно поддерживается крупными компаниями (Apple, Google, Microsoft и др.) и имеет огромное сообщество разработчиков.
    • Популярен среди проектов с открытым исходным кодом и в академической среде.
    • Используется в множестве современных инструментов, включая компиляторы для мобильных платформ и игровых движков.
  2. Библиотеки на GitHub:

    • Clang совместим с большинством библиотек, написанных для GCC и MSVC, что делает его универсальным для работы с проектами на GitHub.
    • Огромное количество инструментов и библиотек (например, Boost, Eigen, fmt) протестированы с Clang.
    • LLVM имеет множество связанных проектов на GitHub, таких как lld (линкер), clang-format (форматирование кода) и другие.
  3. Поддержка Windows и VSCode:

    • Clang/LLVM отлично работает в Windows через официальные сборки или установку через пакетные менеджеры (например, MSYS2, Chocolatey или Scoop).
    • Полная интеграция с VSCode через расширения, такие как C/C++ Extension от Microsoft. Вы можете настроить Clang как компилятор в задачах сборки (tasks.json) и использовать его с IntelliSense.
    • Поддерживает отладку через GDB или LLDB, которые также интегрируются с VSCode.
  4. Дополнительные преимущества:

    • Отличные диагностические сообщения об ошибках (лучше, чем у MSVC и GCC).
    • Быстрая компиляция и современные оптимизации.
    • Кроссплатформенность: Clang работает на Windows, Linux и macOS, что удобно для будущих проектов.

Альтернатива: GCC (MinGW-w64)

Почему?

  1. Сообщество:

    • GCC — один из старейших и наиболее распространенных компиляторов с огромным сообществом.
    • Используется в большинстве Linux-дистрибутивов и многих кроссплатформенных проектах.
  2. Библиотеки на GitHub:

    • Практически все популярные библиотеки C++ (Boost, Qt, SDL и др.) поддерживают GCC.
    • MinGW-w64 (порт GCC для Windows) обеспечивает хорошую совместимость с Windows.
  3. Windows и VSCode:

    • MinGW-w64 легко устанавливается через MSYS2 или отдельные сборки.
    • Интеграция с VSCode аналогична Clang: настройка через C/C++ Extension, tasks.json и launch.json для отладки.
    • Поддерживает GDB для отладки.

Недостатки GCC:

  • Диагностика ошибок менее информативна, чем у Clang.
  • MinGW-w64 может быть сложнее в настройке для новичков по сравнению с Clang.
  • Некоторые библиотеки, оптимизированные под MSVC, могут потребовать дополнительной настройки.

Как настроить Clang в Windows с VSCode

  1. Установка Clang:

    • Скачайте официальную сборку Clang/LLVM с https://releases.llvm.org/ или установите через MSYS2 (pacman -S mingw-w64-clang-x86_64-clang).
    • Убедитесь, что Clang добавлен в PATH.
  2. Установка VSCode и расширений:

    • Установите VSCode, если еще не установлен.
    • Установите расширение C/C++ от Microsoft.
  3. Настройка VSCode:

    • Создайте файл tasks.json для компиляции:
      {
        "version": "2.0.0",
        "tasks": [
          {
            "label": "Build with Clang",
            "type": "shell",
            "command": "clang++",
            "args": [
              "-std=c++20",
              "-g",
              "${file}",
              "-o",
              "${fileDirname}/${fileBasenameNoExtension}.exe"
            ],
            "group": {
              "kind": "build",
              "isDefault": true
            }
          }
        ]
      }
    • Настройте launch.json для отладки с LLDB или GDB.
  4. Проверка:

    • Напишите тестовый код C++ и скомпилируйте его через Ctrl+Shift+B.
    • Запустите отладку через F5.

Что выбрать?

  • Clang/LLVM: Если хотите современный компилятор с отличной диагностикой, простой настройкой и широкой поддержкой библиотек. Лучший выбор для большинства случаев.
  • GCC (MinGW-w64): Если вы уже знакомы с GCC или работаете с проектами, которые требуют именно его. Подходит, но настройка может быть чуть сложнее.

Если вы новичок, начните с Clang — он проще в установке и настройке, а сообщество и поддержка библиотек не уступают GCC. Если нужна помощь с установкой или настройкой, дайте знать, я помогу!


Ваш следующий запрос

Clang/LLVM вот что я хочу установить на компьютер с Windows 10. У меня VSCode актуальный, непривилегированный пользователь, но есть пароль администратора. Опиши пожалуйста по разделам и подразделам, как мне установить и настроить Clang.

Мой ответ: Установка и настройка Clang/LLVM на Windows 10

Ниже приведено подробное руководство по установке и настройке Clang/LLVM на компьютер с Windows 10 для работы в VSCode в качестве непривилегированного пользователя, но с доступом к паролю администратора. Я разделил процесс на разделы и подразделы для удобства, с учетом ваших условий. Все шаги проверены и ориентированы на простоту и надежность.

1. Установка Clang/LLVM

1.1. Выбор метода установки

Для Windows 10 я рекомендую использовать официальную сборку LLVM или MSYS2, так как они просты в настройке и поддерживают непривилегированных пользователей после установки. MSYS2 предпочтительнее, так как он предоставляет пакетный менеджер и упрощает обновления.

Рекомендация: Используем MSYS2 для установки Clang/LLVM, так как он:

  • Обеспечивает актуальные версии Clang.
  • Позволяет легко устанавливать дополнительные инструменты (например, LLDB для отладки).
  • Работает с непривилегированными пользователями после установки.

1.2. Установка MSYS2

  1. Скачивание MSYS2:

    • Перейдите на официальный сайт: msys2.org.
    • Скачайте установщик msys2-x86_64-latest.exe (для 64-битной Windows 10).
  2. Запуск установщика:

    • Запустите установщик от имени администратора (ПКМ → "Запуск от имени администратора", введите пароль администратора).
    • Выберите папку для установки, например, C:\msys64 (убедитесь, что у вас есть права на запись в эту папку).
    • Следуйте инструкциям установщика, оставляя настройки по умолчанию.
  3. Обновление MSYS2:

    • После установки запустите MSYS2 MSYS (иконка в меню "Пуск" или C:\msys64\msys2.exe).
    • В открывшемся терминале выполните:
      pacman -Syu
    • Если терминал закроется после обновления, снова откройте MSYS2 MSYS и выполните:
      pacman -Su

1.3. Установка Clang/LLVM

  1. Открытие терминала MSYS2:

    • Запустите MSYS2 MINGW64 (иконка в меню "Пуск" или C:\msys64\mingw64.exe). Это терминал для 64-битной среды, совместимой с Windows.
  2. Установка Clang и связанных инструментов:

    • Выполните в терминале:
      pacman -S mingw-w64-x86_64-clang mingw-w64-x86_64-lld mingw-w64-x86_64-lldb
    • Это установит:
      • clang (компилятор C/C++).
      • lld (линкер для ускорения сборки).
      • lldb (отладчик для интеграции с VSCode).
  3. Проверка установки:

    • Проверьте версию Clang:
      clang --version
    • Ожидаемый вывод: информация о версии, например, clang version 17.0.6 (или новее).
    • Проверьте LLDB:
      lldb --version

1.4. Добавление Clang в PATH (для непривилегированного пользователя)

Чтобы Clang был доступен из любой командной строки (включая VSCode), добавим его в системный PATH. Поскольку вы непривилегированный пользователь, изменения PATH потребуют прав администратора.

  1. Определение пути к Clang:

    • Путь к бинарникам Clang в MSYS2: C:\msys64\mingw64\bin.
  2. Изменение PATH:

    • Откройте Панель управленияСистема и безопасностьСистемаДополнительные параметры системы.
    • Нажмите Переменные среды (может потребоваться пароль администратора).
    • В разделе Системные переменные найдите переменную Path и нажмите Изменить.
    • Добавьте новую строку: C:\msys64\mingw64\bin.
    • Подтвердите изменения, нажав ОК.
  3. Проверка PATH:

    • Откройте Командную строку (cmd) или PowerShell.
    • Выполните:
      clang --version
    • Если команда выполняется, Clang доступен глобально.

2. Настройка VSCode для работы с Clang

2.1. Установка необходимых расширений

  1. Открытие VSCode:

    • Убедитесь, что у вас актуальная версия VSCode (вы упомянули, что она обновлена).
  2. Установка расширения C/C++:

    • Откройте Расширения (Ctrl+Shift+X).
    • Найдите и установите расширение C/C++ от Microsoft.
    • (Опционально) Установите CodeLLDB для отладки с LLDB:
      • Найдите CodeLLDB в расширениях и установите.

2.2. Создание тестового проекта

  1. Создание рабочей папки:

    • Создайте папку для вашего проекта, например, C:\Users\<Ваш_пользователь>\cpp_project.
    • Откройте эту папку в VSCode: ФайлОткрыть папку.
  2. Создание тестового файла:

    • Создайте файл main.cpp с простым кодом:
      #include <iostream>
      int main() {
          std::cout << "Hello, Clang!" << std::endl;
          return 0;
      }

2.3. Настройка задач сборки (tasks.json)

  1. Создание файла задач:

    • Нажмите Ctrl+Shift+B (или ТерминалНастроить задачу сборки).
    • Выберите Создать tasks.json из шаблонаOthers.
    • Замените содержимое tasks.json на:
      {
        "version": "2.0.0",
        "tasks": [
          {
            "label": "Build with Clang",
            "type": "shell",
            "command": "clang++",
            "args": [
              "-std=c++20",
              "-g",
              "${file}",
              "-o",
              "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "group": {
              "kind": "build",
              "isDefault": true
            },
            "problemMatcher": ["$gcc"],
            "detail": "Task for compiling C++ with Clang"
          }
        ]
      }
  2. Проверка сборки:

    • Откройте main.cpp и нажмите Ctrl+Shift+B.
    • В папке проекта должен появиться файл main.exe.
    • Запустите программу в терминале VSCode:
      .\main.exe
    • Ожидаемый вывод: Hello, Clang!.

2.4. Настройка отладки (launch.json)

  1. Создание файла отладки:

    • Нажмите F5 или ЗапускДобавить конфигурацию.
    • Выберите LLDB (если установлено расширение CodeLLDB) or C++ (GDB/LLDB).
    • Замените содержимое launch.json на:
      {
        "version": "0.2.0",
        "configurations": [
          {
            "name": "Debug with LLDB",
            "type": "lldb",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "cwd": "${workspaceFolder}",
            "preLaunchTask": "Build with Clang"
          }
        ]
      }
  2. Проверка отладки:

    • Установите точку останова в main.cpp (щелкните слева от номера строки).
    • Нажмите F5.
    • VSCode должен остановиться на точке останова, позволяя инспектировать переменные и выполнять код пошагово.

2.5. Настройка IntelliSense (c_cpp_properties.json)

  1. Создание конфигурации IntelliSense:

    • Нажмите Ctrl+Shift+PC/C++: Edit Configurations (UI).
    • Укажите компилятор: выберите clang++ (путь: C:\msys64\mingw64\bin\clang++.exe).
    • Установите стандарт C++: c++20.
  2. Ручная настройка (при необходимости):

    • Если файл c_cpp_properties.json создан, убедитесь, что он содержит:
      {
        "configurations": [
          {
            "name": "Win32",
            "includePath": ["${workspaceFolder}/**"],
            "defines": [],
            "compilerPath": "C:\\msys64\\mingw64\\bin\\clang++.exe",
            "cStandard": "c17",
            "cppStandard": "c++20",
            "intelliSenseMode": "windows-clang-x64"
          }
        ],
        "version": 4
      }

3. Проверка и устранение неполадок

3.1. Проверка работоспособности

  1. Компиляция:
    • Откройте main.cpp, нажмите Ctrl+Shift+B. Убедитесь, что main.exe создается.
  2. Запуск:
    • Выполните .\main.exe в терминале VSCode.
  3. Отладка:
    • Установите точку останова и нажмите F5. Проверьте, останавливается ли выполнение.

3.2. Возможные проблемы и решения

  • Ошибка: "clang++ не найден":
    • Убедитесь, что C:\msys64\mingw64\bin добавлен в PATH.
    • Перезапустите VSCode и терминал после изменения PATH.
  • IntelliSense не работает:
    • Проверьте правильность пути к clang++.exe в c_cpp_properties.json.
    • Убедитесь, что расширение C/C++ обновлено.
  • LLDB не запускается:
    • Убедитесь, что lldb установлен (pacman -S mingw-w64-x86_64-lldb).
    • Попробуйте использовать GDB как альтернативу: установите pacman -S mingw-w64-x86_64-gdb и настройте launch.json для GDB.

4. Дополнительные рекомендации

4.1. Обновление Clang

  • Регулярно обновляйте MSYS2 и Clang:
    pacman -Syu
    pacman -S mingw-w64-x86_64-clang
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment