Comments 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 и постараюсь написать по нему статью.
А, что если не удалить объекты, утечка памяти?
А, что если не удалить объекты, утечка памяти?
Sign up to leave a comment.
Цикл уроков по SDL 2.0: урок 1