В этой статье объясняется, как настроить ваши проекты SFML, если Вы используете интегрированную среду разработки программного обеспечения Visual Studio (компилятор Visual Studio С++).
Установка SFML
Скачайте SFML SDK со страницы загрузки. Выбираем самую последнюю версию софта, на сегодня это версия SFML 2.5.1. Есть варианты выбора для 32-х разрядных систем и 64-х разрядных (рис. №1). Я скачиваю 64-х разрядную библиотеку.
Скачанный архив Вы можете распаковать в любую папку. Я распаковываю на диск С: в папку IT (C:\IT).
Создание и настройка проекта SFML
Создаём пустой проект в Visual Studio (рис. №2).
В обозреватели решений выбираем наш проект (рис. №3).
В меню проекта выбираем добавить новый элемент (рис. №4).
Добавляем файл main.cpp (рис. №5).
Указываем компилятору, где найти заголовочные файлы SFML (файлы .hpp).
Меню -> проект -> свойства проекта -> С/С++ ->общие ->Дополнительные каталоги включаемых файлов
Обращаем внимание на платформу решения, она должна совпадать с разрядностью скачанной библиотеки SFML. В нашем случае мы настраиваем 64-х разрядную библиотеку (рис. №6). Если Вы настраиваете 32-х разрядную систему тогда указывайте x86.
В обозреватели решений выбираем наш проект (рис. №3).
Выбираем меню проект и меню свойства (рис. №7).
В свойствах проекта добавляем путь к заголовочным файлам SFML (рис. №№8-11).
С/С++ ->общие ->Дополнительные каталоги включаемых файлов (включаем каталог include)
Указываем компоновщику, где найти библиотеки SFML (файлы .lib рис.№№12-14).
Компоновщик -> общие -> дополнительные каталоги библиотек(включаем каталог lib)
Связываем наше приложение с библиотеками 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
Компоновщик -> ввод -> дополнительные зависимости
Копируем название библиотек в поле окна дополнительные зависимости (рис. №16 конфигурация Debug).
Устанавливаем отображения графического окна без консоли (рис. №17).
Компоновщик -> система -> подсистема (subsystem:windows)
Создаём точку входа: mainCRTStartup (рис. №18).
Компоновщик -> дополнительно -> точка входа
Незабываем в конце нажать кнопку применить.
Копируем все файлы из папки bin библиотеки SFML и вставляем в наш проект (рис. №19).
Копируем шаблон кода библиотека SFML в файл main.cpp (рис. №20)
Шаблон кода библиотеки 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).
Если у Вас появился треугольник, значит Вы сделали всё правильно, создав свой первый проект 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.