Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Настройка SDL для CodeBlocks

.docx
Скачиваний:
77
Добавлен:
18.03.2018
Размер:
1.37 Mб
Скачать

Инструкция по настройке SDL 1.2 для Code::Blocks 16.01

(Windows 7/8/10)

Версия 1.2 от 16/02/2017

Е.С. Бондарев

Шаг 1 – Выбираем вариант загрузки CodeBlocks

http://www.codeblocks.org/downloads

(выбрать можно любой удобный вариант, самый простой - Download the binary release)

Шаг 2 – Выбираем подходящую версию (самый удобный вариант codeblocks-16.01mingw-setup.exe)

http://www.codeblocks.org/downloads/26

Шаг 3 – Скачиваем SDL (выделенное фиолетовым)

https://www.libsdl.org/download-1.2.php

Шаг 4 – Скачиваем SDL_ttf (выделенное фиолетовым)

https://www.libsdl.org/projects/SDL_ttf/release-1.2.html

Шаг 5 – Скачиваем SDL_draw

https://sourceforge.net/projects/sdl-draw/

Шаг 6 – Скачиваем шрифты

http://www.fontsquirrel.com/fonts/charis-sil

Шаг 7 – Скачанные файлы представлены ниже

Шаг 8 – Создаем папку в корне диска С (компиляторы не любят русских букв)

Шаг 9 – Открываем архив SDL-devel-1.2.15-mingw32.tar.gz, копируем папку SDL-1.2.15

чтобы получилось так:

Открыть архив с расширением tar.gz можно при помощи бесплатного ПО 7-Zip, или аналогов вроде WinRAR и другие.

Ссылка на скачивание (х32) - http://www.7-zip.org/a/7z1604.exe

Ссылка на скачивание (х64) - http://www.7-zip.org/a/7z1604-x64.exe

Шаг 10 – Открываем архив SDL_ttf-devel-2.0.11-VC.zip, открываем папку SDL_ttf-2.0.11\include и файл SDL_ttf.h копируем в папку С:\SDL\SDL-1.2.15\include\SDL как показано ниже

Шаг 11 – Открываем архив SDL_ttf-devel-2.0.11-VC.zip, открываем папку SDL_ttf-2.0.11\lib\x86 и файл SDL_ttf.lib копируем в папку С:\SDL\SDL-1.2.15\lib как показано ниже

Шаг 12 – Открываем архив SDL_draw-1.2.13.tar.gz, папку SDL_draw-1.2.13 копируем в папку С:\SDL\ как показано ниже

Шаг 13 – Открываем архив SDL-1.2.15-win32.zip, копируем файл SDL.dll в папку C:\SDL\SDL_draw-1.2.13\CodeBlocks

Шаг 14 – В папке C:\SDL\SDL_draw-1.2.13\CodeBlocks открываем SDL_draw_static.cbp. В CodeBlocks выбираем project – properties, нажимаем на кнопку «project’s build options».

Шаг 15 – Выбираем раздел Search directories. Нажимаем add – выбираем папку C:\SDL\SDL-1.2.15\include\SDL\ как на картинках ниже и нажимаем ОК.

Шаг 16 – В том же меню переходим в раздел linker, нажимаем add и добавляем папку C:\SDL\SDL-1.2.15\lib\ , нажимаете ОК и еще раз ОК.

Шаг 17 – Выбираем пункт Build – Build and run, появляется такое сообщение и создается файл libSDL_draw.a

Копируем libSDL_draw.a в папку C:\SDL\SDL-1.2.15\lib

Шаг 18 – В папке C:\SDL\SDL_draw-1.2.13\CodeBlocks открываем SDL_draw_dynamic.cbp. В CodeBlocks делаем проект активным (он должен быть выделен жирно), нажимаем project – build options. Выбираем слева Debug, заходим в раздел Linker settings, выделяем вторую строчку (SDL\lib\libSDL.dll.a) и нажимаем Edit, и заменяем на C:\SDL\SDL-1.2.15\lib\libSDL.dll.a

Шаг 19 – Выбираем пункт Build – Build and run. (В случае ошибки необходимо повторить шаг 15).

Появляется сообщение и в папке появляется файл SDL_draw.dll.

Шаг 20 – Заходим в папку C:\SDL\SDL_draw-1.2.13\include, и копируем файл SDL_draw.h в папку C:\SDL\SDL-1.2.15\include\SDL

Шаг 21 – Создаем новый проект (пустой) (File – New – Project).

Добавляем пустой файл. (File – New – Empty file).

Называем его main.cpp

Выбираем ОК.

Шаг 22 – Собираем библиотеки и файлы и копируем их в папку с проектом.

SDL_draw.dll из C:\SDL\SDL_draw-1.2.13\CodeBlocks

Zlib1.dll из SDL_ttf-devel-2.0.11-VC.zip\SDL_ttf-2.0.11\lib\x86

SDL_ttf.dll из SDL_ttf-devel-2.0.11-VC.zip\SDL_ttf-2.0.11\lib\x86

Libfreetype-6.dll из SDL_ttf-devel-2.0.11-VC.zip\SDL_ttf-2.0.11\lib\x86

CharisSILR.ttf из Charis-SIL.zip

SDL.dll из SDL-1.2.15-win32.zip

ВАЖНО! Для удобства можно скопировать все .dll файлы в папку С:\Windows\system32 (для 32-битных систем) или в С:\Windows\SysWOW64 (для 64-битных систем). В этом случае не придется каждый раз добавлять их в проект.

Должно получиться следующее:

Шаг 23 – Открываем CodeBlocks с нашим проектом, переходим в project – properties, нажимаем project’s build options. В разделе Search directories выбираем Compiler, нажимаем Add, и указываем C:\SDL\SDL-1.2.15\include\SDL\

В разделе Linker нажимаем Add и указываем C:\SDL\SDL-1.2.15\lib\

Шаг 24 – Переходим в раздел Linker setting и в поле «Other linker settings» указываем: -lmingw32 -lSDLmain -lSDL -lSDL_draw -lSDL_ttf -lSDL.dll

Запись ведется через знак минус! Последняя библиотека (-lSDL.dll) не является обязательной, но в некоторых редакциях ОС без нее не работает.

Шаг 25 – Копируем текст из методички (см. приложение) в файл main.cpp

Шаг 26 – Выбираем Build – Build and run

От автора:

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

Для удобства все библиотеки были собраны в одном месте и доступны по ссылкам:

https://yadi.sk/d/0jbS-90D3EBDgX

http://voenmeh.ru/afiles/getSDL.rar

Все замечания, уточнения, прошу направлять в ВК – vk.com/norte

ПРИЛОЖЕНИЕ А. ТЕКСТ 1.

#include <SDL.h>

#include <SDL_ttf.h>

int main(int argc, char *argv[])

{

SDL_Surface *screen;

SDL_Event event;

TTF_Font *fnt = NULL;

SDL_Color text_color;

SDL_Rect dest;

SDL_Surface *text_surface = NULL;

/* Строка "Привет, Мир!" в кодировке utf8 */

char hello_world[]="Привет, Мир!";

if (SDL_Init(SDL_INIT_VIDEO))

return 1;

if (TTF_Init())

return 1;

if(!(screen=SDL_SetVideoMode(640,480,32,

SDL_ANYFORMAT))){

TTF_Quit();

SDL_Quit();

return 1;

}

if(!(fnt = TTF_OpenFont("CharisSILR.ttf", 29))){

TTF_Quit();

SDL_Quit();

return 3;

}

dest.x = 200;

dest.y = 100;

dest.w = 1;

dest.h = 1;

text_color.r = 0;

text_color.g = 0;

text_color.b = 255;

if(text_surface = TTF_RenderUTF8_Solid(fnt,

hello_world, text_color))

{

SDL_BlitSurface(text_surface, NULL, screen,

&dest);

SDL_FreeSurface(text_surface);

text_surface = NULL;

}

SDL_Flip(screen);

while(SDL_WaitEvent(&event)){

if(event.type == SDL_QUIT ||

(event.type == SDL_KEYDOWN &&

event.key.keysym.sym == SDLK_ESCAPE))

{

TTF_CloseFont(fnt);

TTF_Quit();

SDL_Quit();

return 0;

}

}

TTF_CloseFont(fnt);

TTF_Quit();

SDL_Quit();

return 2;

}

ПРИЛОЖЕНИЕ Б. ТЕКСТ 2.

#include <SDL.h>

#include <SDL_draw.h>

int main(int argc, char *argv[])

{

SDL_Surface *screen;

SDL_Event event;

if (SDL_Init(SDL_INIT_VIDEO))

return 1;

screen = SDL_SetVideoMode(640,480,32,

SDL_ANYFORMAT);

if (!screen)

{

SDL_Quit();

return 1;

}

Draw_FillEllipse(screen, 320, 240, 300, 200,

SDL_MapRGB(screen->format, 128, 128, 128));

SDL_Flip(screen);

while(SDL_WaitEvent(&event))

{

if(event.type == SDL_QUIT ||

(event.type == SDL_KEYDOWN &&

event.key.keysym.sym == SDLK_ESCAPE))

{

SDL_Quit();

return 0;

}

}

SDL_Quit();

return 2;

}

Соседние файлы в предмете Программирование