![](https://habrastorage.org/getpro/habr/upload_files/512/abb/89d/512abb89d7b94a6d44ab3f9a2e4d99ed.jpg)
В этой статье объясняется, как настроить ваши проекты SFML, если Вы используете интегрированную среду разработки программного обеспечения Visual Studio (компилятор Visual Studio С++).
Установка SFML
Скачайте SFML SDK со страницы загрузки. Выбираем самую последнюю версию софта, на сегодня это версия SFML 2.5.1. Есть варианты выбора для 32-х разрядных систем и 64-х разрядных (рис. №1). Я скачиваю 64-х разрядную библиотеку.
![рисунок №1 рисунок №1](https://habrastorage.org/getpro/habr/upload_files/8f2/fb5/9fa/8f2fb59fa3a84b433bdbad2964dac8e0.jpg)
Скачанный архив Вы можете распаковать в любую папку. Я распаковываю на диск С: в папку IT (C:\IT).
Создание и настройка проекта SFML
Создаём пустой проект в Visual Studio (рис. №2).
![рисунок №2 рисунок №2](https://habrastorage.org/getpro/habr/upload_files/98b/6e1/913/98b6e1913854272246b9262c0773da7f.jpg)
В обозреватели решений выбираем наш проект (рис. №3).
![рисунок №3 рисунок №3](https://habrastorage.org/getpro/habr/upload_files/207/f58/5c8/207f585c84f29c220085f100907a8598.jpg)
В меню проекта выбираем добавить новый элемент (рис. №4).
![рисунок №4 рисунок №4](https://habrastorage.org/getpro/habr/upload_files/912/275/98c/91227598c220b14a955495e78a57b3e0.jpg)
Добавляем файл main.cpp (рис. №5).
![рисунок №5 рисунок №5](https://habrastorage.org/getpro/habr/upload_files/23f/b4a/001/23fb4a00149a69f88ec5d06f4dc44cad.jpg)
Указываем компилятору, где найти заголовочные файлы SFML (файлы .hpp).
Меню -> проект -> свойства проекта -> С/С++ ->общие ->Дополнительные каталоги включаемых файлов
Обращаем внимание на платформу решения, она должна совпадать с разрядностью скачанной библиотеки SFML. В нашем случае мы настраиваем 64-х разрядную библиотеку (рис. №6). Если Вы настраиваете 32-х разрядную систему тогда указывайте x86.
![рисунок №6 рисунок №6](https://habrastorage.org/getpro/habr/upload_files/d81/0af/7b3/d810af7b374b8f59db2fa4d96ef3008e.jpg)
В обозреватели решений выбираем наш проект (рис. №3).
Выбираем меню проект и меню свойства (рис. №7).
![рисунок №7 рисунок №7](https://habrastorage.org/getpro/habr/upload_files/1fc/b11/573/1fcb115737928c7f1d71ee61e297ca30.jpg)
В свойствах проекта добавляем путь к заголовочным файлам SFML (рис. №№8-11).
С/С++ ->общие ->Дополнительные каталоги включаемых файлов (включаем каталог include)
![рисунок №8 рисунок №8](https://habrastorage.org/getpro/habr/upload_files/ee8/a71/2cf/ee8a712cfbcffb7d905f572de89d2043.jpg)
![рисунок №9 рисунок №9](https://habrastorage.org/getpro/habr/upload_files/559/eb4/7a7/559eb47a732b9a360eb3a3f21dd68d86.jpg)
![рисунок №10 рисунок №10](https://habrastorage.org/getpro/habr/upload_files/dd9/cc1/7d0/dd9cc17d0dd19e1492b3001e3539ead9.jpg)
![рисунок №11 рисунок №11](https://habrastorage.org/getpro/habr/upload_files/aef/364/f1f/aef364f1f53867898c70d1df6c9f4eee.jpg)
Указываем компоновщику, где найти библиотеки SFML (файлы .lib рис.№№12-14).
Компоновщик -> общие -> дополнительные каталоги библиотек(включаем каталог lib)
![рисунок №12 рисунок №12](https://habrastorage.org/getpro/habr/upload_files/263/ab6/301/263ab6301680845dc5a6ed1dbc120f4a.jpg)
![рисунок №13 рисунок №13](https://habrastorage.org/getpro/habr/upload_files/ad3/9d8/a81/ad39d8a8122fd5d68478f2b9e119ab2d.jpg)
![рисунок №14 рисунок №14](https://habrastorage.org/getpro/habr/upload_files/35c/a23/f79/35ca23f79b9900b0c320c6bf805d0809.jpg)
Связываем наше приложение с библиотеками SFML файлами *.lib (рис. №№15-16)
для Debug :
sfml-graphics-d.lib
sfml-window-d.lib
sfml-audio-d.lib
sfml-system-d.lib
sfml-network-d.lib
для Release :
sfml-graphics.lib
sfml-window.lib
sfml-system.lib
sfml-audio.lib
sfml-network.lib
Компоновщик -> ввод -> дополнительные зависимости
![рисунок №15 рисунок №15](https://habrastorage.org/getpro/habr/upload_files/fe4/3b0/ac0/fe43b0ac064fddfd4d44f09737025adf.jpg)
![рисунок №16 рисунок №16](https://habrastorage.org/getpro/habr/upload_files/54d/6e6/d7f/54d6e6d7fde9dc337ea5fc498962ff91.jpg)
Копируем название библиотек в поле окна дополнительные зависимости (рис. №16 конфигурация Debug).
Устанавливаем отображения графического окна без консоли (рис. №17).
Компоновщик -> система -> подсистема (subsystem:windows)
![рисунок №17 рисунок №17](https://habrastorage.org/getpro/habr/upload_files/02a/0de/e2e/02a0dee2e858eb9506e98358a23862f0.jpg)
Создаём точку входа: mainCRTStartup (рис. №18).
Компоновщик -> дополнительно -> точка входа
![рисунок №18 рисунок №18](https://habrastorage.org/getpro/habr/upload_files/ebe/f89/9bd/ebef899bd3f7d7ffe1baeeae2f83b934.jpg)
Незабываем в конце нажать кнопку применить.
Копируем все файлы из папки bin библиотеки SFML и вставляем в наш проект (рис. №19).
![рисунок №19 рисунок №19](https://habrastorage.org/getpro/habr/upload_files/d2d/ab9/3a2/d2dab93a2458972a8e99e9972dbe6364.jpg)
Копируем шаблон кода библиотека SFML в файл main.cpp (рис. №20)
![рисунок №20 рисунок №20](https://habrastorage.org/getpro/habr/upload_files/045/aa3/8cc/045aa38ccacc2e9bb5216d06392ccca6.jpg)
Шаблон кода библиотеки SFML:
#include <SFML/Graphics.hpp>
using namespace sf;
int main()
{
RenderWindow window(VideoMode(400, 400), L"Новый проект", Style::Default);
window.setVerticalSyncEnabled(true);
CircleShape shape(100.f,3);
shape.setPosition(100, 100);
shape.setFillColor(Color::Magenta);
while (window.isOpen())
{
Event event;
while (window.pollEvent(event))
{
if (event.type == Event::Closed)
window.close();
}
window.clear(Color::Blue);
window.draw(shape);
window.display();
}
return 0;
}
Выполним код программы (рис. №21).
![рисунок №21 рисунок №21](https://habrastorage.org/getpro/habr/upload_files/646/7c3/831/6467c3831e4ebfc6f38fed9fbd93b9f4.jpg)
Если у Вас появился треугольник, значит Вы сделали всё правильно, создав свой первый проект SFML C++.
Если что-то у Вас не вышло, то более подробную инструкцию подключения библиотеки SFML к Visual Studio 2022, а также создание шаблона библиотеки SFML в Visual Studio, вы можете узнать посмотрев видео "Подключение библиотеки SFML C++".
Комментарии (7)
JordanCpp
06.12.2022 09:35+1Согласен с автором выше. Проще в cmake прописать две команды include_directories,
link_directories к распакованной библиотеке SFML студия 2022 автоматом все подхватит. Чем лазить в дебри проекта студии.Troyy Автор
06.12.2022 12:16Буду рад если поделитесь опытом)
JordanCpp
06.12.2022 17:17+1Примерно так. Это прям самый дубовый, но рабочий вариант. https://github.com/JordanCpp/SFML_Sample
AmAlAleksander
06.12.2022 10:57+1Буквально пару дней назад мучился, с настройкой, еле получилось, причем статическое связывание сделал
Playa
Автор что-нибудь слышал про пакетные менеджеры? А дальше дебага собирал этот проект?
Troyy Автор
Я уже делал обзор на ютуб по менеджеру пакетов vcpkg.