Новость из категории: Информация

SDL: сборка с помощью make

Содержание:
1. Введение;
2. Установка SDL;
3. Сборка с помощью make (Вы читаете данный раздел);
4. Распространение SDL-программы.
Этап 4. Сборка с помощью make

SDL: сборка с помощью make

Приведу минимальный makefile для компиляции одного только файла - test.cpp. Замечу, что SDL любит, когда функция main объявлена с параметрами, а не просто int main(). То есть правильным будет нечто вроде:
int main (int argc, char *argv[])

Полезно изучить вывод команды в консоли MinGW (в консоли Windows скрипт sdl-config просто не сработает):
sdl-config --libs --cflags

Это даст вам понятие о флагах, которые нужны для сборки SDL-программ под Windows. В частности, в некоторых случаях надо переопределять для исходника название функции main, передавая компилятору параметр:
-Dmain=SDL_main

Напишем makefile. Напомню, что в makefile, в отступах вместо пробелов обязательно (!) используется табуляция. Также напомню, что в значениях LIBS и FLAGS ниже не одинарные кавычки, а тильды. Итак, makefile:
TARGET = test
LIBS = 'sdl-config --libs4 -lSDL_image -lSDL_ttf -lSDL_mixer
CFLAGS = -03 'sdl-config --cflags4
CC = g++
all:
$(CC) $(CFLAGS) -c test.cpp -o test.o
$(CC) -o $(TARGET) test.o $(LIBS)
clean:
rm *.o
rm $(TARGET)

По сути, этого makefile (если изменять в нем имена исходных файлов) достаточно для сборки любого примера из каталога test исходника SDL. Не забывайте, что в тех примерах надо подключения заголовков изменить, добавив SDL/ к каждому SDL.h.

Кроме того, после обращения к sdl-config прописано -lSDL_image -lSDL_ttf -lSDL_mixer, что обеспечит для компилируемой программы линковку с указанными библиотеками: SDL_Image, SDL_Mixer, SDL_Ttf.

SDL: сборка с помощью make

Этап 5. Сборка с помощью Scons

Приведу файл SConstruct для Scons - с его помощью можно собрать целую программу, состоящую из одного и более файлов (в примере для make мы ограничились только одним файлом исходника).

Чтобы не делать в коде SConstruct каких-либо переключателей для различных систем, советую писать по варианту SConstruct для каждой системы и добавлять к имени файла расширение. Например SConstruct.lin - файл SConstruct для Linux, а SConstruct.win - для Windows. Потом просто передаем scons нужный файл:
scons -f SConstruct.win

Итак, вот SConstruct.win:
import glob import os
env = Environment()
SOURCES = glob.glob('*.cpp')
env.Append(CCFLAGS = ['-g', '-Wall'])
env.Append(LIBS = ['mingw32', 'SDLMain', 'SDL',
'SDL_image', 'SDL_mixer', 'SDL_ttf'])
env.MergeFlags('-mwindows')
env.MergeFlags('-I/usr/local/include/SDL
-D_GNU_S0URCE=1 -Dmain=SDL_main')
env.Program(target = 'game', source = SOURCES)

Итогом станет сборка исходников в текущем каталоге в файл game.exe. Обратите внимание, что важен порядок указания линовки библиотек в переменной LIBS, а также важны все добавленные флаги.



Пока изучали SDL, успели проголодаться, как волк? Значит, Вам следует как можно скорее изучить бизнес ланч меню (http://www.restoranmenu.ru/biznes-lanchi.html) и приступить к трапезе. Сделать это Вы сможете на сайте www.restoranmenu.ru, где представлены меню всех ресторанов и кафе вашего города!

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх