Clang на Windows обычно ставится в пару к другому компилятору - к MinGW GCC или к MSVC (компилятор от Visual Studio), и использует некоторые библиотеки от них. Оффициальная сборка Clang-а по умолчанию использует MSVC, так что если она у вас работает, значит MSVC уже стоит.
Как ставить библиотеки - ищите инструкцию для MinGW или MSVC, и повторяйте то же самое с Clang-ом.
Раз вы не пользуетесь Visual Studio, то зависеть от MSVC выглядит странно. Я бы советовал поставить MinGW из MSYS2.
Сносите оффициальный кланг.
Ставите MSYS2 по ссылке выше.
Запускаете его ярлыком MSYS2 UCRT64
. Если сделано правильно, в открышейся консоли будет написано UCRT64
фиолетовыми буквами. (подробнее тут)
Обновляетесь командой pacman -Syuu
. Если при этом консоль закроется - открыть заново и повторить команду для завершения обновления.
Ставите себе Clang (эта версия по умолчанию использует библиотеки от MinGW), GDB (отладчик), и wxWidgets.
pacman -S mingw-w64-ucrt-x86_64-clang mingw-w64-ucrt-x86_64-wxwidgets3.2-msw mingw-w64-ucrt-x86_64-gdb
Теперь пробуем собрать пример отсюда (полный код в самом конце статьи).
clang++ my_code.cpp `wx-config --cxxflags --libs`
Обратите внимание на обратные кавычки. Это запускает команду wx-config --cxxflags --libs
, и подставляет ее вывод как флаги clang++
.
Запускаем получившийся файл командой ./a.exe
, и видим тестовое окно.
У меня при компиляции вылезла куча странных предупреждений. Глушим их.
Для этого в примере находим #include <wx/wx.h>
, и обкладываем его вот так:
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wignored-attributes"
#endif
#include <wx/wx.h>
#ifdef __clang__
#pragma clang diagnostic pop
#endif
Перезапускаем компиляцию и убеждаемся в отсутсвии предупреждений.
Пробуем запустить a.exe
не из MSYS2, а мышкой из проводника. Скорее всего ничего не запустится, пока вы не добавите C:\msys64\ucrt64\bin
первым элементом в PATH.
Теперь повторяем то же самое из CodeBlocks.
Лезем в настройки, и исправляем путь до компилятора. Он должен показывать на содержимое папки C:\msys64\ucrt64\bin
. То же самое с путем до отладчика.
В настройки проекта вписываем флаги компилятора. В compiler flags -> other
вывод wx-config --cxxflags
, а в linker flags -> other
вывод wx-config --libs
.
Пробуем скомпилировать и запустить из CodeBlocks.