Комментарии 21
Пожалуйста, не повторяйте за другими всякую бяку.
Подключать заголовки нужно всегда с указанием пути. Т.е. для SDL 1.x:
Если по какой-то причине это не работает, значит в среде неправильно настроены пути к библиотекам.
Подключать заголовки нужно всегда с указанием пути. Т.е. для 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>
.Моё мнение, что через
""
стоит подключать только «внутрипроектные» инклуды, а инклуды библиотек надо всегда через <>
, причём указывать путь всегда, чтобы быть уверенным в том, какая именно библиотека подключается.Цитируя FAQ wiki, касающийся разработки:
The most portable way to include SDL headers is to use quotes around the header name:
#include «SDL.h»
The most portable way to include SDL headers is to use quotes around the header name:
#include «SDL.h»
Процитируя мой ответ Вам в private messages,
я с ними несогласен. Из-за такой позиции все и суют SDL куда попало вместо того, чтобы поставить куда надо.
Обновил пост.
Глянул, что в SDL_Image, например, инклудится «SDL.h»… вновь изменил свою точку зрения и поправил пост.
SDL_Image это SDL_Image. Остальным нужно именно так:
И никак более. Так не нужно будет в случае чего менять исходники, просто либо через pkg-config, либо вручную -I указать. В том-же Microsoft Visual Studio C++ исходники менять не придется, просто пути (или как оно там называется) прописать в проекте.
gcc `pkg-config --cflags sdl2` <...> `pkg-config --libs sdl2`
#include <SDL2/SDL.h>
И никак более. Так не нужно будет в случае чего менять исходники, просто либо через pkg-config, либо вручную -I указать. В том-же Microsoft Visual Studio C++ исходники менять не придется, просто пути (или как оно там называется) прописать в проекте.
А, что если не удалить объекты, утечка памяти?
А, что если не удалить объекты, утечка памяти?
Не надо людей учить плохому. BMP — проприетарный формат, и к тому же без сжатия. За его использование MS может попросить денюжку. Лучше сразу разрабатывать игры с использованием PNG для графики и OGG для звука, чтобы никаких претензий ни у кого не возникало.
В чём выражается проприетарность? Википедия говорит «patent free», документация есть в msdn — по всему выходит что формат открытый. А сжатие — это уже зависит от потребностей в каждом конкретном случае. В конкретно данном случае куда важнее простота, выражающаяся в отсутствии зависимости от SDL2_image.
Это перевод цикла уроков, причём пока что первый из них. В третьем уроке будет разобрана библиотека SDL_Image, позволяющая работать с различными форматами изображений.
Возможно кому-то пригодится моя C++ обёртка над (пока весьма небольшим подмножеством) SDL2. Позволяет не думать о проверке ошибок и уборке мусора.
github.com/AMDmi3/libSDL2pp
github.com/AMDmi3/libSDL2pp
Судя по статистике переходов с хабра, библиотека многих интересует. Сделал туториал: github.com/AMDmi3/libSDL2pp-tutorial и постараюсь написать по нему статью.
А, что если не удалить объекты, утечка памяти?
А, что если не удалить объекты, утечка памяти?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Цикл уроков по SDL 2.0: урок 1