Во-первых, я рекомендую внимательно следовать SFML-учебнику о настройке библиотеки в Visual Studio. Если что-то пойдет не так, проверьте этот ответ.
Я разделю этот ответКак настроить sfml в качестве динамической библиотеки и как это сделать в качестве статической библиотеки .
Общие шаги
Давайте создадим проект VS (я буду использовать VS2013 и SFML 2.5.1, но это почти то же самое с другими версиями).Создайте его как ConsoleApplication и установите флажок Пустой проект .
Загрузить sfml библиотеки , последниежелательно стабильную версию, выбрав соответствующую систему (в моем случае Visual C ++ 12 (2013) - 64-битная ).Извлеките этот файл, где находится ваш .vcxproj
файл.Это создаст папку с именем SFML-XXX в зависимости от вашей версии.
Загрузите внешние библиотеки , в моем случае 64биты версия.Создайте папку с именем extlib внутри папки библиотеки и поместите туда эти внешние библиотеки.
Создайте файл main.cpp
и вставьте пример кода из Учебные пособия по SFML .
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
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 As Dynamic Library
Перейти к Сборка-> Диспетчер конфигурации ,Если вы используете 64-битную библиотеку, сначала вы должны создать новую платформу решений.Нажмите Active Solutions Platform-> New , выберите x64 копирование из Win32 конфигурации.Я предпочитаю снять отметку Создать новые проектные платформы .
Создать Debug-Dynamic и Release-Dynamic компиляция профилей.Выбрав активную платформу решений, нажмите Конфигурация (проекта) и New .Вы можете назвать его Debug-Dynamic и скопировать его из конфигурации отладки (также снимите флажок Создать новый ... ).Повторите создание конфигурации Release-Dynamic .
Open Свойства проекта-> Отладка .Выберите Debug-Dynamic конфигурацию и измените поле Environment с этим значением PATH=$(ProjectDir)\SFML-2.5.1\bin;%PATH%
.Это будет указывать VS, где можно найти библиотеки .dll
.
В разделе C / C ++ , измените поле Дополнительные каталоги включения , добавивэтот путь $(ProjectDir)\SFML-2.5.1\include
.Это будет указывать на VS, где находятся .hpp
файлы.
На секции Linker , измените Поле дополнительных каталогов библиотеки , добавив этот путь $(ProjectDir)\SFML-2.5.1\lib
.Это будет указывать VS, где .lib
файлы могут быть найдены.
Наконец, на Linker-> Input , измените Дополнительные зависимости поле с помощьюдобавление всех необходимых .lib
файлов:
sfml-audio-d.lib
sfml-graphics-d.lib
sfml-network-d.lib
sfml-system-d.lib
sfml-window-d.lib
Примечание -d
суффикс для указания отладочных библиотек
Повторите шаги с 3 по 6 для конфигурации
Release-Dynamic .
Примечание , на шаге 6 библиотечные файлы не имеют суффикса
-d
, поскольку они являются библиотеками релиза
SFML As Static Library
Перейдите на Сборка-> Диспетчер конфигурации .Создайте Debug-Static и Release-Static профили компиляции.Выбрав активную платформу решений, нажмите Конфигурация (проекта) и New .Вы можете назвать его Debug-Static и скопировать его из конфигурации отладки (также снимите флажок Создать новый ... ).Повторите создание конфигурации Release-Static .
Open Свойства проекта и выберите Debug-Static configuration.В разделе C / C ++ измените Поле дополнительных каталогов , добавив этот путь $(ProjectDir)\SFML-2.5.1\include
.Это будет указывать VS, где находятся .hpp
файлы.
Вкл. C / C ++ section-> Препроцессор *, изменить Определения препроцессора , добавив определение SFML_STATIC
.Это будет указывать препроцессору, что SFML будет статически скомпилирован.
В разделе Линкер измените поле Дополнительные каталоги библиотеки , добавив эти пути $(ProjectDir)\SFML-2.5.1\extlib;$(ProjectDir)\SFML-2.5.1\lib;
.Это будет указывать VS, где можно найти .lib
файлы из внешних источников и из SFML.
Наконец, в разделе Linker-> Input , измените Дополнительные зависимости поле со всеми необходимыми .lib
необходимыми файлами:
sfml-audio-s-d.lib
sfml-graphics-s-d.lib
sfml-network-s-d.lib
sfml-system-s-d.lib
sfml-window-s-d.lib
flac.lib
freetype.lib
ogg.lib
openal32.lib
opengl32.lib
vorbis.lib
vorbisenc.lib
vorbisfile.lib
winmm.lib
gdi32.lib
ws2_32.lib
Примечание -d
суффикс для обозначения библиотеки отладки
Примечание2 -s
суффикс для обозначения статические библиотеки
Повторите шаги 2–5 для конфигурации
Release-Static .
Примечание , на шаге 5 библиотечные файлы не имеют суффикса
-d
, потому что они выпускают библиотеки, но сохраняют суффикс
-s
.