<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>P-Game Studio</title>
		<link>https://gamestudio.3dn.ru/</link>
		<description>Форумы</description>
		<lastBuildDate>Sat, 13 Dec 2008 17:53:51 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://gamestudio.3dn.ru/forum/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Мини фак по SDL</title>
			<link>https://gamestudio.3dn.ru/forum/64-211-1</link>
			<pubDate>Sat, 13 Dec 2008 17:53:51 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://gamestudio.3dn.ru/forum/64&quot;&gt;Программирование игр&lt;/a&gt;&lt;br /&gt;Описание темы: Simple DirectMedia Layer.&lt;br /&gt;Автор темы: DarkMN&lt;br /&gt;Автор последнего сообщения: DarkMN&lt;br /&gt;Количество ответов: 2</description>
			<content:encoded>&lt;span style=&quot;font-size:12pt;&quot;&gt;&lt;span style=&quot;color:orange&quot;&gt;Предисловие.&lt;/span&gt;&lt;/span&gt; &lt;p&gt; SDL - библиотека предоставляет доступ к видео и аудио оборудованию вашего компьютера, а также к устройствам ввода, таким как мышь, клавиатура и джойстик. Эту библиотеку используют в самых различных программах, начиная от MPEG-проигрывателей и заканчивая эмуляторами. Но по большей части SDL используется для создания игр. Например таких как Tribes и Civilization: Call to Power. &lt;p&gt; SDL по своим возможностям очень напоминает Microsoft DirectX API. Но поддерживает большое число операционных систем (то есть ваши программы будут работать в нескольких операционных системах) и имеет интерфейс с многими языками программирования. Библиотека написана на Си (хотя прекрасно работает с С++), но поддерживает очень много других языков, даже такие как Perl, Python и PHP! Поддерживаемые операционные системы: Linux, BeOS, MacOS, Solaris, FreeBSD, IRIX, Win32. Распространяется библиотека по лицензии GNU Lesser General Public License version 2. Это означает, что вы можете без проблем создавать коммерческие программы. &lt;br /&gt; SDL создал замечательный человек Sam Lantinga, который работает в компании Blizzard Entertainment и работал в компании Loki Entertainment Software ведущим программистом. История SDL начинается с времен, когда Сэм работал над программой эмулятором Макинтош для Windows. Он заметил, что многие куски кода без проблем могут работать в Linux. И он решил создать небольшую библиотеку, чтобы ей могли воспользоваться другие программисты. В октябре 1997 был выпущен релиз библиотеки с версией 0.3, а позже эту библиотеку во всю использовала компания Loki Software для портирования игр под Linux. &lt;br /&gt; Как говорит Сэм, сравнивать SDL и DirectX все равно что сравнивать апельсин и яблоко. Единственное сходство в том, что это фрукты. SDL предоставляет значительно более простой API, чем DirectX. SDL изначально создана для 2D-графики и не имеет непосредственно функций для 3D-графики, но прекрасно дружит с OpenGL. Для поддержки сетевых функций можно использовать библиотеку SDL_net. &lt;br /&gt; Конечно, выбор библиотеки для своего проекта - личное дело каждого, но все-таки SDL является бесспорным лидером для создания игр или мультимедиа-программ. Если вы не хотите использовать SDL для своей игры, то все равно рекомендую ознакомиться с приемами работы с библиотекой, чтобы повысить уровень своего образования. &lt;p&gt; &lt;span style=&quot;font-size:12pt;&quot;&gt;&lt;span style=&quot;color:orange&quot;&gt;Установка.&lt;/span&gt;&lt;/span&gt; &lt;p&gt; Прежде чем устанавливать библиотеку SDL, необходимо ее где-нибудь взять. Самую последнюю версию можно всегда найти на официальном сайте &lt;a class=&quot;link&quot; href=&quot;http://www.libsdl.org&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;www.libsdl.org&lt;/a&gt;. Там можно достать не только библиотеку SDL для всех поддерживаемых платформ, но и другие библиотеки для облегчения программирования SDL-приложений. Например для работы с практически любыми графическими форматами SDL Image или для работы со звуком SDL mixer и очень много других библиотек, в том числе и для облегчения разработки игр. Там же вы найдете огромное количество документации. &lt;br /&gt; Об установке SDL в операционных системах отличных от Linux можно найти в пакетах для этих систем. Например для установки в Win32 для Visual C++ нужно всего лишь скопировать sdl.dll в системную папку и распаковать файлы из архива (который качаете с сайта) в папку с Visual C++. Практически во все дистрибутивы Linux библиотека включена по умолчанию. Поэтому просто выбирайте ее при инсталяции. Кроме того, просто необходимо установить пакет SDL-devel, который нужен для разработки SDL-программ. &lt;p&gt; Если вы не имеете в системе установленного пакета SDL (проверить можно так: rpm -qa | grep SDL), то ставите так: &lt;br /&gt; rpm -ivh SDL-x.x.x-xxx.rpm &lt;br /&gt; или компилируете исходники make, make install. Если будут ошибки при компиляции ваших программ, после установки библиотеки из исходников выполните команду ldconfig (естественно от рута). &lt;br /&gt; Еще одна важная часть установки - установка документации по библиотеки SDL. Если в вашей системе нету документации (обычно в /usr/share/doc), то загрузите ее с сайта. &lt;br /&gt; Еще одна неприятность может возникнуть при работе приложений в полноэкранном режиме. Если программа установит разрешение экрана меньше чем текущий, то возможно, что изображение будет сфокусировано в центре, а вокруг черная рамка. Это лечится правкой XF86Config. Просто добавьте поддержку этого режима. Вот пример: &lt;p&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Section &quot;Screen&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Identifier &quot;Screen 1&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;3dfx&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Monitor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;Samsung LCD&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DefaultDepth 16 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Subsection &quot;Display&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Depth 8 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Modes &quot;1280x1024&quot; &quot;1024x768&quot; &quot;800x600&quot; &quot;640x480&quot; &quot;320x240&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewPort 0 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EndSubsection &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Subsection &quot;Display&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Depth&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Modes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;1280x1024&quot; &quot;1024x768&quot; &quot;800x600&quot; &quot;640x480&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewPort&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EndSubsection &lt;br /&gt; EndSection&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;p&gt; &lt;b&gt;Добавлено&lt;/b&gt; (10/12/08, 11:40) &lt;br /&gt; --------------------------------------------- &lt;br /&gt; &lt;span style=&quot;font-size:12pt;&quot;&gt;&lt;span style=&quot;color:orange&quot;&gt;Компиляция.&lt;/span&gt;&lt;/span&gt; &lt;p&gt; Давайте рассмотрим очень важный вопрос: как компилировать программы, использующие библиотеку SDL. Что касается компиляции под платформу, отличную от Linux, внимательно ознакомьтесь с документацией для этой платформы. Например, чтобы компилировать программы в среде Visual C++, прочтите файл VisualC.html, который находится в архиве для Visual Studio (см. www.libsdl.org). Еще я просто рекомендую прочитать SDL FAQ, который можно найти все на том же сайте. Пока я расскажу как компилировать программы для Linux. &lt;br /&gt; И так, мы будем использовать компилятор g++ (используйте gcc, если пишете на Си). Сначала рассмотрим все, что касается #include. При подключении заголовков SDL к программе (обычно они находятся в /usr/include/SDL) мы делаем так: #include &quot;SDL.h&quot;. А потом указываем компилятору, где искать ненайденные заголовки (как вы помните, если заголовок в команде #include взят в кавычках, то он должен быть в текущей директории). Это нужно для переносимости программ, потому что не у всех заголовки будут лежать там же, где и у вас. При компиляции подставляем в качестве опции: &lt;br /&gt; -I/usr/include/SDL &lt;br /&gt; Или другой путь, если он у вас отличается от моего. Нам также нужно указать сами библиотеки, которые будем линковать к нашей программе, а также путь к этим библиотекам: -L/usr/lib указывает путь к библиотекам, а -lSDL линкует библиотеку libSDL.so к программе(опция -L указывает путь к библиотекам, а опция -l линкует библиотеку). &lt;br /&gt; Соберем все в кучу. Я приведу листинг небольшой програмки, использующей SDL. Вы можете не стараться вникнуть в код, потому что все это разберем далее в уроках. &lt;p&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;#include &quot;SDL.h&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; #include &lt;stdio.h&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; int main(&amp;#41; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf(&quot;Initializing SDL.&amp;#92;n&quot;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO&amp;#41;==-1&amp;#41;&amp;#41; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf(&quot;Could not initialize SDL: %s.&amp;#92;n&quot;, SDL_GetError(&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit(-1&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf(&quot;SDL initialized.&amp;#92;n&quot;&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf(&quot;Quiting SDL.&amp;#92;n&quot;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SDL_Quit(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf(&quot;Quiting....&amp;#92;n&quot;&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0; &lt;br /&gt; }&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;p&gt; Пример взят из SDL Documentation. Назовите его test.cxx и давайте попробуем его собрать. &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;g++ -O3 -o test test.cxx -I/usr/include/SDL -L/usr/lib -lSDL&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Флаг -O3 задает уровень оптимизации (-O3 задает максимальный уровень, по умолчанию используется -O2). &lt;br /&gt; Флаг -o задает имя программы на выходе. &lt;br /&gt; Все остальное я уже рассказал. Но существует более элегантный способ задать флаги компиляции SDL. Просто выполните команду sdl-config --cflags --libs. Все необходимые для компиляции флаги SDL будут на выходе этой программы. То есть мы могли бы сделать так: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;g++ -O3 -o test test.cxx `sdl-config --cflags --libs`&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Где эту команду нужно поместить между знаков ` (это там где тильда ~). &lt;br /&gt; Если проект большой и состоит из многих файлов, то компилировать каждый неудобно и сложно. По этому приготовьтесь получить CRASH-курс по утилите make. &lt;br /&gt; Наверно не раз собирали какую-нибудь программу, набирая в консоли make. Согласитесь, это гораздо проще, чем компилировать каждый файл проекта примерно так же, как я показывал (см. выше). Чтобы работать с утилитой make, вы должны создать файл с именем &quot;Makefile&quot; в директории с проектом. Теперь возьмем пример простого make-файла для нашей тестовой программы, чтобы было легче разобраться: &lt;p&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;TARGET = test &lt;br /&gt; LIBS = `sdl-config --libs` &lt;br /&gt; CFLAGS = -O3 `sdl-config --cflags` &lt;br /&gt; CC = g++ &lt;br /&gt;&lt;br /&gt; all: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(CC&amp;#41; $(CFLAGS&amp;#41; -c test.cxx -o test.o &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(CC&amp;#41; -o $(TARGET&amp;#41; test.o $(LIBS&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;strip $(TARGET&amp;#41; &lt;br /&gt; clean: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rm *.o&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rm $(TARGET&amp;#41; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;p&gt; На первый взгляд немного сложно, но только на первый. И так, начнем по порядку. В верхней части мы задаем переменные: TARGET - имя программы на выходе, LIBS - какие библиотеки использовать, CFLAGS - уровень оптимизации и путь к заголовочным файлам библиотеки SDL, CC - имя выполняемого файла компилятора. Использовать переменные нужно так: $(ПЕРЕМЕННАЯ), т.е. заключать в круглые скобки и перед скобками ставить знак доллара. С переменными все ясно (надеюсь), теперь дальше: в make-файлах самое главное это так называемые цели (target). В нашем примере две цели - это all и clean. С новой строки мы пишем правила для сборки цели - команды, которые нам нужны. Не забудьте начинать каждую строку правил с нажатия кнопки TAB. Это обязательно. Если получите ошибку make-файла, то в первую очередь проверьте, расставлены ли знаки табуляции. Очень удобно в этом плане использовать редактор Midnight Commander, который подсвечивает табуляцию. В нашем случае мы сначала создаем object-файл, а потом программу. Строка &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;$(CC&amp;#41; $(CFLAGS&amp;#41; -c test.cxx -o test.o&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; эквивалентна &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;g++ -O3 -I/usr/include/SDL -c test.cxx -o -test.o&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Опция компилятора -с указывает, что нужно пропустить финальную стадию компиляции (линковку), а создать только объектный файл. И следующая строка &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;$(CC&amp;#41; -o $(TARGET&amp;#41; test.o $(LIBS&amp;#41;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; эквивалентна &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;g++ -o test test.o -I/usr/lib -lSDL&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Пути могут отличаться в зависимости от системы. Команда stripоптимизирует исполняемый файл программы. Цель clean удаляет объектные файлы и запускаемый файл программы. Чтобы выполнить цель clean нужно выполнить команду make clean. Для выполнения цели all достаточно просто выполнить команду make. На самом деле синтаксис make-файлов гораздо обширнее и сложнее, но если овладеть им, то ваша жизнь облегчится во много раз. В интернете можно найти очень много информации по утилите make.</content:encoded>
			<category>Программирование игр</category>
			<dc:creator>DarkMN</dc:creator>
			<guid>https://gamestudio.3dn.ru/forum/64-211-1</guid>
		</item>
	</channel>
</rss>