C ++ SFML с MinGW версии 8.2.0 и текстовым редактором Atom - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь научиться делать 2d игры, используя c ++ с библиотекой SFML.Я использую окна, но я бы предпочел использовать текстовый редактор Atom вместо Visual Studio.Я провел много исследований о том, как это сделать, но я до сих пор не знаю, как использовать библиотеку SFML с Atom.Итак, как бы мне реализовать реализацию библиотеки SFML в моем проекте c ++, написанном на Atom.Спасибо!

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Предполагается, что вы загрузили 32-битную версию SFML для MinGW и хотите скомпилировать программы, написанные на Atom, из командной строки 1 .Внутри папки SFML, которую вы только что загрузили, есть три папки, которые важны для нас прямо сейчас: bin, lib и include.

  • Папка bin содержит библиотеки DLL.В этом ответе я расскажу только о динамических ссылках на SFML, так как с этим у меня есть опыт.Для запуска любого динамически связанного исполняемого файла, созданного с использованием SFML, вам необходимо скопировать все соответствующие библиотеки DLL в ту же папку, что и исполняемый файл.(Какие из них актуальны? Простое решение - просто скопировать их все. 2 )

  • В папке lib содержатся библиотеки (файлы с расширением .a).Если вы перейдете в папку, в которую вы установили MinGW (по умолчанию это C: \ MinGW), а затем перейдете по пути \ lib \ gcc \ mingw32 \ 8.2.0, вы должны оказаться в папке с несколькими подпапками, некоторые из них .oфайлы и куча .a файлов.Скопируйте сюда все файлы из папки SFML lib.Теперь MinGW знает о библиотеках SFML.

  • Наконец, папка include содержит папку с именем SFML, которая содержит все заголовочные файлы SFML.Скопируйте папку SFML.Теперь запомните папку, в которую мы сбросили все файлы .a на последнем шаге?Эта папка должна иметь подпапку с именем include, которая содержит папку с именем C ++, которая содержит все стандартные заголовки C ++ (iostream, алгоритм и т. Д.).В эту папку C ++ вставьте папку SFML, которую мы взяли всего секунду назад.(Не содержимое папки, а скорее сама папка.) Теперь MinGW знает о заголовках SFML, поэтому мы можем безопасно набрать, например, #include <SFML/Graphics.hpp>

Например, чтобы скомпилировать файл main.cpp в конце этого урока и динамически связать его с Atom, вы должны запустить команду g++ main.cpp -lsfml-graphics -lsfml-window -lsfml-system внутри cmd.exe.


Отказ от ответственности: Копирование библиотек и папок включения , а не метод, рекомендованный SFML.Вместо этого они предлагают использовать аргументы командной строки, чтобы сообщить g ++, где искать.Но IMO (1) их метод больше беспокоит начинающих пользователей, и (2) начинающие пользователи вряд ли будут использовать несколько компиляторов или несколько версий SFML.(Если вы используете несколько компиляторов или несколько версий SFML, вы захотите сделать это по-своему. В этом случае дайте мне знать, и я постараюсь помочь.)


1) Возможно, вы действительно хотите скомпилировать непосредственно в Atom одним нажатием кнопки (F5 по умолчанию?).Если вы уже знаете, как компилировать не-SFML-приложения непосредственно в Atom, то я думаю, что вышесказанного должно быть достаточно и для того, чтобы компилировать SFML-приложения, если вы правильно установите флаги компилятора по умолчанию в Atom.(Под этим я подразумеваю: для приведенного выше примера ваши флаги должны включать -lsfml-graphics, -lsfml-window и -lsfml-system, в этом порядке).

2) Чтобы выяснить, какие DLL вам нужны, вы можетедобавьте их все и начните удалять, пока ваше приложение не будет работатьИли помните об этих трех вещах:

  • Вам всегда нужен openal32.dll
  • Вам нужны библиотеки DLL, с которыми вы связались при компиляции
  • Вам нужны версиис "-d" (например, sfml-graphics-d-2.dll), если вы компилируете в режиме отладки, и вам нужны версии без него, в противном случае

Так в случае примераВыше нужны только openal32.dll, sfml-graphics-2.dll, sfml-window-2.dll и sfml-system-2.dll.

0 голосов
/ 18 июня 2019

Вам нужны пакеты Atom

Итак, в настоящее время iam разрабатывает новый пакет для компиляции SFML на Atom.Мне просто нужно написать Документы и сделать из них пакет Atom, но взгляните на репозиторий: https://github.com/brhaka/sfml-compiler

Вы можете внести свой вклад в это или просто пометить звездочку:)

Я работаютрудно выпустить его как можно скорее, поэтому я предлагаю вам немного подождать.Для этого есть другой пакет, но нет документации.

Ваше имя действительно круто!

Надеюсь, это поможет вам!

Брхака

...