![](https://habrastorage.org/getpro/habr/upload_files/b26/a5c/0b6/b26a5c0b6c9887945c42d06b31ddcc25.jpg)
В этой статье рассказывается, как настроить ваши проекты SFML С++ со статической компоновкой используя интегрированную среду разработки программного обеспечения Visual Studio.
Установка SFML библиотеки
Загрузите библиотеку SFML c официального сайта. Выбираем самую последнюю версию софта, на сегодня это версия SFML 2.6.1.
![](https://habrastorage.org/getpro/habr/upload_files/b3b/ba2/a28/b3bba2a28c7f7975bea739ce9d128ae0.png)
Скачанный архив Вы можете распаковать в любую папку. Я распаковываю на диск С: в папку IT (C:\IT).
Настройка проекта SFML
Создаём проект "Консольное приложение" в Visual Studio.
![](https://habrastorage.org/getpro/habr/upload_files/e86/ebc/63d/e86ebc63d46d6884488c8c9a6b16a2b3.png)
Настраиваем созданный проект.
![](https://habrastorage.org/getpro/habr/upload_files/518/478/855/5184788553373dd4f910babd4254a25f.png)
Если вы используете 32 разрядную библиотеку SFML тогда выбираете платформу win 32, я использую 64 разрядную и выбираю платформу x64.
Настраиваем свойство С/С++
С/С++ ->Общие ->Дополнительные каталоги включаемых файлов (включаем каталог include библиотеки SFML)
![](https://habrastorage.org/getpro/habr/upload_files/deb/8b9/8b6/deb8b98b6625a83e499e73845e765f11.png)
![](https://habrastorage.org/getpro/habr/upload_files/850/fb1/9f9/850fb19f909dd276d967550bd4ac681f.png)
С/С++ -> Препроцессор -> Определение препроцессора (дописываем параметр SFML_STATIC)
![](https://habrastorage.org/getpro/habr/upload_files/f92/d6f/1fe/f92d6f1fe818b2bb3a317610fce2be74.png)
Настраиваем свойство Компоновщик
Компоновщик -> Общие -> Дополнительные каталоги библиотек (включаем каталог lib)
![](https://habrastorage.org/getpro/habr/upload_files/7c9/9c8/f17/7c99c8f1705741deb8a563c9fba683f0.png)
![](https://habrastorage.org/getpro/habr/upload_files/dc3/ceb/76a/dc3ceb76a1d8fba75c8576ec7ac612e4.png)
Связываем наше приложение с файлами SFML *.lib
Компоновщик -> Ввод -> Дополнительные зависимости
![](https://habrastorage.org/getpro/habr/upload_files/595/d70/78d/595d7078dc03a3bef2e159e73fd29544.png)
Копируем название библиотек в поле окна дополнительные зависимости
Конфигурация Debug :
sfml-graphics-s-d.lib
sfml-window-s-d.lib
sfml-system-s-d.lib
sfml-audio-s-d.lib
sfml-network-s-d.lib
opengl32.lib
openal32.lib
freetype.lib
winmm.lib
gdi32.lib
flac.lib
vorbisenc.lib
vorbisfile.lib
vorbis.lib
ogg.lib
ws2_32.lib
Конфигурация Release :
sfml-system-s.lib
sfml-window-s.lib
sfml-network-s.lib
sfml-audio-s.lib
sfml-graphics-s.lib
opengl32.lib
openal32.lib
ws2_32.lib
winmm.lib
ogg.lib
vorbis.lib
flac.lib
vorbisenc.lib
vorbisfile.lib
freetype.lib
gdi32.lib
![](https://habrastorage.org/getpro/habr/upload_files/4c1/6e1/24d/4c16e124df1d23e5f1796c1ee4dc9a0f.png)
Чтобы исчезала консоль при запуске проекта SFML, вносим дополнительные настройки, обычно их вносят в конфигурацию Release.
Компоновщик -> Система -> Подсистема (Windows/SUBSYSTEM:WINDOWS)
![](https://habrastorage.org/getpro/habr/upload_files/d67/ff0/2b8/d67ff02b89b6a777ac01b01ceeeeb7f7.png)
Компоновщик -> Дополнительно -> Точка входа (mainCRTStartup)
![](https://habrastorage.org/getpro/habr/upload_files/45d/73c/8ff/45d73c8ffd7ceca7f20c8018c97feb94.png)
Незабываем в конце нажать кнопку применить.
Для работы с 3D звуком в играх, копируем файл openal32.dll из папки SFML-2.6.1\bin\ в папку Windows\System32\
По умолчанию в операционной системе Windows данный файл отсутствует.
Шаблон кода для проекта библиотеки SFML С++
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(600, 400), L"Иллюзия", sf::Style::Default);
window.setVerticalSyncEnabled(true);
sf::Vector2f a1{100,100};
sf::Vector2f a2{500,200};
sf::Vector2f a3{500,200};
sf::Vector2f a4{100,300};
bool lu = true;
sf::ConvexShape convex;
convex.setPointCount(4);
convex.setFillColor(sf::Color::Magenta);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
if (lu) { a1.y += 1; a4.y -= 1; a2.y -= 1; a3.y += 1; if (a1.y > 200) lu = false; }
else { a1.y -= 1; a4.y += 1; a2.y += 1; a3.y -= 1; if (a1.y < 100) lu = true; }
convex.setPoint(0, a1);
convex.setPoint(1, a2);
convex.setPoint(2, a3);
convex.setPoint(3, a4);
window.clear(sf::Color::Blue);
window.draw(convex);
window.display();
}
return 0;
}
![](https://habrastorage.org/getpro/habr/upload_files/f2b/63d/3f2/f2b63d3f29230ead5b609e03b3274a03.png)
Если после выполнения кода программы Вы увидите четырёхугольник, значит Вы сделали всё правильно, создав свой первый проект SFML C++ со статической компоновкой.
Создаём шаблон для проектов SFML C++ в IDE Visual Studio 2022
В нашем созданном проекте выбираем меню:
Проект -> Экспорт шаблона
![](https://habrastorage.org/getpro/habr/upload_files/562/39b/a32/56239ba32cb2bf0dfc8609965a073ccd.png)
В появившемся окне выбираем шаблон проекта и нажимаем кнопку далее.
![](https://habrastorage.org/getpro/habr/upload_files/fb2/52c/5e7/fb252c5e706c6630617958c834998b1f.png)
Заполняем графы: имя шаблона, описание шаблона, изображения значка, просмотр изображения. Ставим ниже все галочки и нажимаем кнопку готово.
![](https://habrastorage.org/getpro/habr/upload_files/320/a02/15e/320a0215e2f531e2e112f8cb86b73bdb.png)
В появившемся окне проводника находим архив шаблона и распаковываем его.
![](https://habrastorage.org/getpro/habr/upload_files/4ac/464/139/4ac46413983258a3560e6819c8085fc7.png)
Заходим в папку с распакованными файлами и с помощью блокнота открываем файл MyTemplate.vstemplate.
![](https://habrastorage.org/getpro/habr/upload_files/e5f/7ad/173/e5f7ad173cd27202bba44246980594e8.png)
Вносим изменения обозначенные на картинке ниже.
<Name>Sample SFML Static C++</Name>
<Description>Написание игр на С++ используя мультимедийную библиотеку SFML</Description>
<ProjectType>VC</ProjectType>
<LanguageTag>Cpp</LanguageTag>
<PlatformTag>Windows</PlatformTag>
<ProjectTypeTag>Games</ProjectTypeTag>
Переменная названия файлов проекта - $safeprojectname$
![](https://habrastorage.org/getpro/habr/upload_files/d54/86f/090/d5486f090f736f7eb4e7acd746fcb2bb.png)
Вносим переменную в два последующих файла.
Sample SFML Static C++1.vcxproj
![](https://habrastorage.org/getpro/habr/upload_files/f8a/2de/e30/f8a2dee307a04b7e483aaa694343e12a.png)
Sample SFML Static C++1.vcxproj.filters
![](https://habrastorage.org/getpro/habr/upload_files/b80/2e7/b81/b802e7b817aa8df2389e9996f8480564.png)
Копируем изменённые файлы обратно в архив шаблона.
![](https://habrastorage.org/getpro/habr/upload_files/1fa/003/b59/1fa003b5953c98c2629afbb1dc44a222.png)
Копируем архив шаблона из папки
C:\Users\пользователь\Documents\Visual Studio 2022\My Exported Templates
В папку
C:\Users\пользователь\Documents\Visual Studio 2022\Templates\ProjectTemplates
Запускаем Visual Studio 2022, находим наш шаблон SFML и используем его для своих проектов.
![](https://habrastorage.org/getpro/habr/upload_files/9f1/eaf/a4b/9f1eafa4b415493539d97326fb4cade2.png)
Если что-то у Вас не вышло, то более подробную инструкцию подключения библиотеки SFML к Visual Studio 2022, а также создание шаблона библиотеки SFML в Visual Studio, вы можете получить, посмотрев видео "Подключение библиотеки SFML C++ статическая компоновка"