Pull to refresh

Comments 21

Пожалуйста, не повторяйте за другими всякую бяку.
Подключать заголовки нужно всегда с указанием пути. Т.е. для SDL 1.x:
#include <SDL/SDL.h>
Для SDL 2.x:
#include <SDL2/SDL.h>

Если по какой-то причине это не работает, значит в среде неправильно настроены пути к библиотекам.
Отчего-же? Скажем, pkg-config --cflags sdl2 на моей системе подключает путь .../include/SDL2, то есть, с таким флагом, надо будет подключать #include <SDL.h>.
Смотрите, оно делает -I/usr/include/SDL2, т.е. добавляет его в «несистемные» инклуды. Т.е. через подключать надо либо через "SDL.h", либо через <SDL2/SDL.h>.
Моё мнение, что через "" стоит подключать только «внутрипроектные» инклуды, а инклуды библиотек надо всегда через <>, причём указывать путь всегда, чтобы быть уверенным в том, какая именно библиотека подключается.
Процитируя мой ответ Вам в private messages,
я с ними несогласен. Из-за такой позиции все и суют SDL куда попало вместо того, чтобы поставить куда надо.
Глянул, что в SDL_Image, например, инклудится «SDL.h»… вновь изменил свою точку зрения и поправил пост.
SDL_Image это SDL_Image. Остальным нужно именно так:
gcc `pkg-config --cflags sdl2` <...> `pkg-config --libs sdl2`

#include <SDL2/SDL.h>


И никак более. Так не нужно будет в случае чего менять исходники, просто либо через pkg-config, либо вручную -I указать. В том-же Microsoft Visual Studio C++ исходники менять не придется, просто пути (или как оно там называется) прописать в проекте.
У меня вижуалка начинает ругаться, что не может найти библиотеку, т.к. в SDL_Image именно такой инклуд. («SDL.h»)
UFO landed and left these words here

А, что если не удалить объекты, утечка памяти?

А, что если не удалить объекты, утечка памяти?

Не надо людей учить плохому. BMP — проприетарный формат, и к тому же без сжатия. За его использование MS может попросить денюжку. Лучше сразу разрабатывать игры с использованием PNG для графики и OGG для звука, чтобы никаких претензий ни у кого не возникало.
В чём выражается проприетарность? Википедия говорит «patent free», документация есть в msdn — по всему выходит что формат открытый. А сжатие — это уже зависит от потребностей в каждом конкретном случае. В конкретно данном случае куда важнее простота, выражающаяся в отсутствии зависимости от SDL2_image.
> Википедия говорит «patent free», документация есть в msdn — по всему выходит что формат открытый.

Уж сколько раз натыкались на одни и те же грабли — сегодня это free, а завтра давай плати. Учитывая, что авторство формата остается за Microsoft, сделать они могут что угодно.
Это перевод цикла уроков, причём пока что первый из них. В третьем уроке будет разобрана библиотека SDL_Image, позволяющая работать с различными форматами изображений.
Судя по статистике переходов с хабра, библиотека многих интересует. Сделал туториал: github.com/AMDmi3/libSDL2pp-tutorial и постараюсь написать по нему статью.

А, что если не удалить объекты, утечка памяти?

Sign up to leave a comment.

Articles