В этом уроке я хотел бы показать, как подключить библиотеку SFML к среде разработки Visual Studio.
SFML содержит ряд модулей для простого программирования игр и мультимедиа приложений.
Перед тем как начать. Нужно пройти по ссылке: http://www.sfml-dev.org/download/sfml/2.3.2/ (это официальный сайт) и скачать библиотеку. Выбирайте версию для своей VS.
Распаковываем куда вам угодно, на всякий случай старайтесь избегать русских букв в папках пути.
Запускаем Visual Studio, файл->создать->проект->пустой проект. (Имя проекта, решений и путь выбирайте сами).
Добавляем исходный код – для этого слева в обозревателе решений находим вкладку «Файлы исходного кода»->правый клик->добавить->создать элемент->файл C++ (имя main.cpp)->добавить.
Далее вставляем вот этот тестовый код в файл main.cpp
#include <SFML/Graphics.hpp> int main() { sf::RenderWindow window(sf::VideoMode(200, 200), "SFMLworks"); sf::CircleShape shape(100.f); shape.setFillColor(sf::Color::Green); while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) window.close(); } window.clear(); window.draw(shape); window.display(); } return 0; }
После попытки запуска мы сталкиваемся с подобной проблемой:
Для того, чтобы всё это работало – необходимо подключить библиотеку SFML.
Для начала, все действия мы делаем для конфигурации Debug.
Заходим вверху «проект»->свойства “имя проекта”->свойства конфигурации->C++->общие
В пункте «дополнительные каталоги включаемых файлов прописываем путь до раннее распакованного архива с библиотекой (+ \include.)
Например: C:\Program Files\SFML-2.3.2\include
Затем идем в компоновщик->общие и в пункте «дополнительные каталоги библиотек» прописываем путь к папке lib;
Далее идем в компоновщике во вкладку ввод и в первой строке «дополнительные зависимости» вписываем перед всеми библиотеками следующую строчку:
sfml-graphics-d.lib;sfml-window-d.lib;sfml-system-d.lib;sfml-audio-d.lib;
Только что подключили основные необходимые для работы библиотеки.
Последний штрих – идем во вкладку C++->препроцессор и в первой строке «определение препроцессора» в самом начале дописываем: SFML_DYNAMIC;
Напоминаю, все действия мы делали для конфигурации Debug. Все тоже самое нужно проделать для конфигурации Release.
Заходим вверху «проект»->свойства “имя проекта”->свойства конфигурации. В левом верхнем углу находим Конфигурация, нажимаем на слайдер и выбираем Release.
И повторяем несколько предыдущих пунктов.
Запустим и словим ошибку. Зато соберется проект и появится папка debug.
Теперь идем в папку бинарников “bin”, которую вы скачали и распаковали с библиотекой (мой вариант D:\SFML-2.2\bin\) и копируем всё содержимое этой папки (dll файлы типа sfml-graphics-2.dll) в папку с вашим проектом в папку debug (после сборки появилась эта папка), но не в тот debug, где лежит файл с исходным кодом “main.cpp”, а тот, где появляется exe файл.
В эту же папку копируем и вот эти файлы :
msvcp100d.dll;msvcp110.dll;msvcp110d.dll;msvcr100d.dll;msvcr110.dll;msvcr110d.dll;
Все эти файлы можно скачать в zip архиве, который я прикрепил снизу.
Теперь проект можно запустить и если вы всё сделали правильно, то увидите зелёный круг как на скриншоте ниже:
Если возникла вот такая проблема:
Советую воспользоваться программой: Dll-Files Fixer.
Прикрепленный файл | Размер |
---|---|
msvcp.zip | 550.93 кб |
msvcr.zip | 1.61 Мб |