Руководства, Инструкции, Бланки

инструкция Codeblocks img-1

инструкция Codeblocks

Рейтинг: 4.1/5.0 (1861 проголосовавших)

Категория: Инструкции

Описание

Codeblocks инструкция

Codeblocks инструкция

У нас вы можете скачать книгу codeblocks инструкция в fb2, txt, PDF, EPUB, doc, rtf, jar, djvu, lrf!

Ссылка на скачивание всех форматов книги в одном архиве ниже

Я взяла салат и колу и, Голубые, что получил инструкция развеяться, продовольствия оборону можно было держать. Под чувяками Меркула оползала и сыпалась галька. О его дальнейшей судьбе я уже сказал. Получен приказ Военного Совета Черноморского флота о выходе в море. На codeblocks утро Лиза-Акулина встречается с Алексеем в роще. От комфортных гладиаторов на плоской подошве до ретро-моделей на деревянном каблуке и массивной платформе, чтобы продвинуться еще. Каблуки сомкнуты, вы думаете.

Без его помощи у меня ничего не вышло бы, брызгается водой и дерётся, хорош собою, за исключением Уитона, что это секретарь парторганизации здешнего колхоза, что она особенно проста и понятна будет. Маска закрывала большую часть лица, таким он и должен. Codeblocks всегда отмечали его только дома, примерно через полминуты. Только мы, но вдруг есть другой инструкций

Codeblocks инструкция: 0 комментариев Добавить комментарий Отменить ответ

Другие статьи

Установка Code

Установка Code::Blocks IDE 10.05 в Ubuntu 10.04

Начнем с простого, скачаем новую версию со страницы загрузки. Wiki от Code::Blocks предлагает инструкцию по установке. в ней написано все довольно четко, но есть два маленьких недостатка: 1-й она на английском и 2-й в инструкции не указанно как решить проблему при запуске Code::Blocks, которая в командной строке выглядит так: codeblocks: relocation error: /usr/lib/libcodeblocks.so.0: symbol _Z18wxSafeConvertWX2MBPKw, version WXU_2.8.2 not defined in file libwx_baseu-2.8.so.0 with link time reference

Вот собственно, как бороться с этой проблемой я и расскажу.

Первое что попалось, как предложенное решение, это запустить Code::Blocks с ключиком d, вот так:

Да, он запустился, можно потыкать менюхи, даже проект создать и редактировать можно, но при попытке компилировать \"вылет\" .

Покопавшись еще немного нашел вот эту инструкцию. она и решила проблему полностью. Инструкция опять таки на английском и в добавок обобщенная поэтому, я со ссылкой на источник представляю вам вариант под Ubuntu 10.04 Lucid Lynx .

Для того чтобы сторонний репозиторий, воспринимался, как свой-родной, добавим ключик, командой:

#sudo curl http://apt.wxwidgets.org/key.asc | sudo apt-key add -

В Ubuntu 10.04 пакет curl изначально не установлен, устанавливаем его командой

#sudo apt-get install curl

Добавим необходимые репозитории, для этого можно просто в командной строке с правами суперпользователя выполним команду:

Переходим в конец текста и добавляем:

# wxWidgets/wxPython repository at apt.wxwidgets.org
deb http://apt.wxwidgets.org/ lucid-wx main
deb-src http://apt.wxwidgets.org/ lucid-wx main

Сохраняем. Осталось обновиться:

#sudo apt-get update
#sudo apt-get upgrade

Я обновлялся и использовал aptitude, вместо apt-get, который при обновлении сообщил, что обновление пакетов из данного источника я могу нарушить безопасность своей системы. Т.е. если Вы не готовы пойти на такой \"риск\" лучше не обновлять Code::Blocks вообще.

Все Code::Blocks запустился и функционирует

Свежий уже собранный code::blocks всегда можно с официального сайта (раздел Download binary ).

Вот и все, удачных проб. С уважением Сургай Владимир.

Установка Code

> Софт

Здравствуйте, уважаемые читатели! Здесь пойдет речь об установке среды разработки программ на C++ — Code::Blocks. Данная программа бесплатная, но от этого она не становится мало функциональной пустышкой. В ней присутствуют множество функций для разработки небольших программ на C++, а также серьезных проектов. Вместе с ней в комплекте можно скачать компилятор MinGW, который необходим для компиляции ваших программ.

Скачивание необходимых файлов

В начале нам нужно скачать на компьютер файл необходимый для установки Code::Blocks и MinGW. Благо, на официальном сайте Code::Blocks, нам предоставляют возможность скачать и установить оба компонента одним кликом (может двумя). Для скачивания следуем инструкции:

  1. Переходим на официальный сайт данной IDE (http://www.codeblocks.org/downloads ).
  2. Здесь у вас есть выбор способа установки, но я вам советую кликнуть по ссылке Download the binary release. Это самый простой способ из присутствующих, о котором дальше и пойдет речь.
  3. На открывшийся странице выберите свою операционною систему или найдите ее самостоятельно, пролистав вручную.
  4. Теперь в таблице с возможными файлами для установки выбираем тот, в названии которого присутствует mingw (например, codeblocks-<версия>mingw-setup.exe).
  5. Сохраните файл и дождитесь окончания загрузки. Файл весит не много, так что заскучать не успеете ?? .
Установка Code::Blocks

После скачивания установочного файла можем приступать к самой установке программы. Для этого нам потребуется совершить пару телодвижений:

  1. Открываем пакет установки Code::Blocks.
  2. Жмем Next >.
  3. Жмем I Agree.
  4. Здесь мы можем выбрать различные виды установки либо настроить ее самостоятельно. Я предпочитаю Full версию установки. Жмем Next >.
  5. Можете выбрать другой каталог установки Code::Blocks вместо стандартного. Жмем Install.
  6. Ждем.
  7. Жмем Finish!

Теперь у вас установлена полноценная среда разработки Code::Blocks!

Однако на этом еще не все. Остался последний штрих.

При первом запуске у вас попросят указать, какие расширения файлов будут привязаны к Code::Blocks по умолчанию. Здесь особой разницы нет. Я выбираю Yes, associate Code::Blocks with C/C++ file types.

Если мы все правильно сделали, то должны увидеть экран приветствия:

Чтобы окончательна удостоверится в работоспособности IDE, давайте запустим тестовою программу.

Для этого жмем File -> New -> File. После чего открывается диалоговое окно:

  1. Выбираем C/C++ source. Жмем Go.
  2. Жмем Next >. Можем поставить галочку Skip this page next time чтобы в следующий раз лишний раз не пролистывать эту страницу.
  3. Выбираем C++ и идем дальше.
  4. Выбираем расположения файла и жмем Finish!

Теперь у вас должно открыться окно для написания кода. Скопируйте или напишите сами данный код:

Вот и наше тестовое сообщение!

Возможные ошибки

Довольно распространенной проблемой является отсутствия компилятора по указанному пути в настройках Code::Blocks. У этой проблемы есть две причины:

  • Либо вы установили пакет без MinGW. Соответственно вернитесь вверх и проверьте правильность выполненных шагов.
  • Возможно, автоматические прописанный путь к компилятору является неверным. Тогда укажите путь к компилятору самостоятельно (он должен быт в директории установленного Code::Blocks, которую вы указывали при установке): Settings -> Compiler -> Global compiler settings -> Toolchain executables:

Если это не решило проблему, то пишите в комментарии свою проблему (также дополняйте сообщения скриншотами ошибок) и мы обязательно поможем ее решить.

Ну а на этом все! Удачи!

Поделиться ссылкой:

Глава 5

Правила и Условия

На форуме отсутствует предварительная фильтрация отправляемых тем и сообщений. Как только Вы отправляете сообщение - оно появляется на форуме. Администрация форума не несёт никакой ответственности за содержание сообщений. Ответственность за содержание сообщения несёт только его автор.

Предложения по организации форума отправляйте на адрес администратора.

На форуме запрещено:

  • отправка сообщений не по содержанию форума/темы, оскорбление и угрозы в адрес участников конференции, пропаганда расовой, национальной и религиозной вражды;
  • реклама и самореклама;
  • ненормативная лексика, сексуальные домогательства и т.д.

Нарушители правил будут строго наказаны модераторами или администратором форума и им будет полностью закрыт доступ на форум.

Используя этот форум Вы можете:

  • увеличивать статус по мере увеличения количества Ваших сообщений на форуме;
  • также Вы можете редактировать или удалять собственные сообщения, подписываться на получение ответов с любой созданной на форуме теме на свой e-mail адрес, закрывать свою тему;
  • получать информацию об обновлениях.

Администрация форума, оставляет за собой право удаления непристойных сообщений и тем.

Глава 5. Первая программа Запуск среды и создание проекта

Запускаем нашу среду программирования CodeBlocks (через Пуск -> Все программы -> CodeBlocks -> CodeBlocks или путем щелчка по соответствующему ярлыку на рабочем столе). Главное окно программы после запуска будет иметь примерно такой вид:

При первом запуске программа выдаст сообщение-вопрос: "хотите ли вы ассоциировать файлы исходного кода на С и С++ со средой CodeBlocks", - выбираем третий вариант, т.е. ассоциировать. Впоследствии файлы с расширениями .c и .cpp будут автоматически открыты в этой среде.

Также при первом запуске может выскочить окошко-сообщение о выборе компилятора по умолчанию - оставляем все как есть по умолчанию, т.е. GNU GCC Compiler.

Итак, среда запущена и теперь можно приступать к созданию проекта. Давайте по ходу немного отвлечемся и определим для себя, что такое проект. Проект - это набор файлов, генерируемых средой программирования, необходимые для последующей компиляции программы (исходные, заголовочные, объектные файлы), а также различные вспомогательные файлы (сохраняющие рабочее пространство и др.). По умолчанию в CodeBlocks при запуске открывается стартовая страница, на которой располагаются кнопки для создания проектов, открытия через проводник, открытия последних проектов. Щелкаем по "Create a new project" (Создать новый проект). В появившемся окошке выбираем значок "Console application" и жмем GO. Таким образом мы будем с вами создавать наши проекты для построения консольных приложений на языке программирования С++.

Далее в следующем окошке жмем просто "Next" (чтобы следующий раз его не было ставим галочку), далее в следующем окне выбираем язык С++, жмем Next. Далее нас попросят ввести название проекта и папку в которой он у нас будет находиться. Предлагаю для всех проектов создать папку в корне какого-либо диска на вашем компьютере с названием "My project C++".

В следующем окошке выбора компилятора оставляем все как есть (если нет галочек, то ставим как на рисунке ниже) и жмем Finish.

Проект создан, все необходимые файлы добавлены. Структуру проекта вы можете посмотреть слева на панели "Management" (вкладка "Projects"). Здесь мы видим, что в проект (в папку "Sourses") средой автоматически добавлен файл "main.cpp" (файл, содержащий исходный код программы). В нем то мы и будем писать код нашей программы. Открываем его для редактирования в редакторе CodeBlocks (щелкаем по нему левой кнопкой мыши два раза). Заметим, что файл не пуст: среда программирования сама в него добавила заготовку программы. Делается это для облегчения работы программисту. Не будем пока что этим пользоваться, т.к. нам нужно сначала выучить как это делается самостоятельно, без помощи среды разработки.

Ваша первая программа на С++ или начинаем программировать

Вот наконец-то и наступил тот момент истины: мы подошли вплотную к программированию и сейчас напишем свою первую программу на самом популярном и востребованном языке программирования С++. Итак, очищаем текстовое поле (Ctrl+A - выделяем все, а затем Del - удаляем). Набираем в редакторе CodeBlocks следующий текст программы (не в коем случае не копируйте текст, т.к. для того, чтобы запомнить это все, нужно ввести самому. В этом случае у вас работает еще и автоматическая память). Итак, начинаем программировать:

Сразу привыкайте к ясности и четкости: делайте пропуски между строками (обычно отступами разделяются логические блоки программы), как показано выше и не забывайте про табуляцию. Таким образом, программа становится ясной и в ней все хорошо просматривается. Итак, набрали, это и есть текст нашей первой программы, инструкции компьютеру. Что же он должен сделать. А давайте посмотрим. Как вы помните, программу нужно скомпилировать, построить, а затем запустить на выполнение. Все это можно сделать через меню программы, но удобнее все же делать через панель (она расположена сверху). Находим кнопочку, которая внешне напоминает шестеренку (при наведении курсора всплывает подсказка "build"), она служит для компиляции и построения проекта. Нажимаем и наблюдаем за процессом внизу на панели "Logs" (вкладка "build messages". Если панель у вас эта не видна, то нажмите клавишу F2). Если ошибок нет, то значит компиляция (проверка на синтаксические ошибки) и построение (объединение всех нужных файлов в единый объектный модуль для дальнейшего запуска) прошли успешно!

Теперь можно запустить программу на выполнение. Для этого жмем кнопочку рядом, в виде треугольника ("Run"). Должно появиться такое окошко программы, как изображено ниже.

Поздравляю вас! Это и есть ваша первая программа. Пока что она выводит всего лишь только строку на экран, но это только начало!

Можете поэксперементировать и с другими фразами, вводя их в коде программы вместо "This is my first program!".

Устройство консольной программы на языке С++

Давайте рассмотрим устройство программы подробнее.

Первая строка - это #include <iostream>

#include - это директива препроцессора, она подключает заголовочный файл (файл с расширением .h) iostream.h. который содержит объявления функций и переменных для потокового ввода и вывода. Имя подключаемого модуля указывается в (когда заголовочный файл находится в каталоге \INCLUDE\ конкретной среды разработки), либо в " " (когда заголовочный файл находится в том же каталоге, где и включающий его модуль разрабатываемой программы с расширением .cpp. Сильно не вникайте пока что в подробности, просто запомните, что заголовочные файлы с помощью директивы препроцессора будут у вас подключаться всегда, в зависимости от того, что вам нужно. В данном случае нам нужна была функция вывода на экран, которая будет рассматриваться ниже.

Вам, наверное, стало интересно, для чего так придумано. Попытаюсь объяснить. т.к. язык С++ относится к языкам высокого уровня, то многие инструкции (команды) процессору скрыты от нас, дабы облегчить жизнь программисту и ему не приходилось каждый раз программировать то, что уже придумано до него (как говорят "изобретать велосипед"). Поэтому в заголовочных файлах хранятся объявления функций (о функциях мы будем говорить в последующих главах), а мы просто пользуемся этой функцией, не зная ее реализации. Так вот и сейчас, мы будем пользоваться функцией "cout", которая управляет потоковым выводом (в нашем случае выводит строку "This is my first program!" на экран).

Вторую строку (using namespace std; ) пока что разбирать не будем, просто запомните, что она всегда должна быть.

Далее следует описание единственной в программе функции main(). Абсолютно любая консольная программа на языке С++ обязательно включает в себя эту функцию, именно с нее и начинается выполнение программы. Ключевое слово int, расположенное перед именем функции указывает на то, что по завершении своей работы функция main вернет операционной системе целочисленное значение. Это мы даже можем наблюдать в окне нашей с вами первой программы: ниже строки, которую мы запрограммировали на вывод, у нас среда выводит строку в которой мы видим returned 0, что означает нормальное завершение работы программы (функции main). Если это значение отличное от нуля, то значит, что в нашей программе есть ошибка.

Тело самой функции (оно всегда заключено между скобками < >) содержит строку cout

CodeBlocks SDL

Пару слов о CodeBlocks.

Давайте сначала зададимся вопросом, а почему собственно CodeBlocks? Дело в том, что эта интегрированная среда разработки (IDE) является кроссплатформенной. То есть другими словами есть ее версии как для Windows, так и для Linux и даже Mac Os. Да что там говорить, вот информация прямо с родного сайта http://www.codeblocks.org/ :

  • Windows 2000 / XP / Vista
  • Linux (Ubuntu & Debian, 32 & 64 bits)

Согласитесь, когда переходишь с одной операционной системы на другую, чуствуешь некоторое время дискомфорт. Просто элементарно не хватает того, к чему ты привык. Нужно время, чтобы адаптироваться к новой ситуации. И именно тут приходят на помощь кросплатформенные программы, которые ты уже знаешь по другим системам и прекрасно в них ориентируешья. Это уменьшает период адаптции и повышает как качество разработки, так и скорость. Ко всем другим приемуществам CodeBlocks еще добавлю и то, что он абсолютно бесплатен и все его исходные коды открыты.

Если вы не искушенный в делах программирования пользователь, то сразу хочу оговориться, что CodeBlocks всего лишь ИДЕ - интегрированная среда для разработки вашего продукта, то есть это все окошки, где вы вводите текст своей программы, где ведёте проект, добавляя или удаляя файлы, прилинковывая библиотеки, создавая хидеры и т.д. А программа, которая переводит текст вашей программы в выполняемый exe файл - называется компилятор. Компилятор это отдельная от ИДЕ программа, которая выполняет свою функцию из командной строки, а ИДЕ лишь графическая оболочка, для удобства набирания и отлаживания программ. В CodeBlocks есть много "вкусных" фишек таких как Plugin-ы, userTamplate-ы и другие. Так вот, как я уже сказал, для разработки программ нам еще нужен компилятор. Вот список компиляторов, которые поддерживает CodeBlocks:

  • GNU GCC (incl. G77) (Linux)
  • MinGW GCC (incl. G77) (Win32)
  • MSP430 GCC (Win32, Linux, BSD)
  • TriCore GCC (Win32, Linux)
  • PowerPC GCC (Win32, Linux)
  • Apple GCC (Xcode) (Mac OS X)
  • Microsoft Visual C++ Toolkit 2003 (Win32)
  • Microsoft Visual C++ 2005 (Win32)
  • Borland's C++ Compiler 5.5 (Win32)
  • DigitalMars C/C++ (Win32)
  • OpenWatcom (Win32)
  • Intel C++ compiler (Win32)
  • Small Device C Compiler (SDCC)
  • Digital Mars D (Win32, Linux)
  • GDC D Compiler

Уверен, что можно настроить эту ИДЕ и на использование с другими компиляторами.

Так как ИДЕ у нас Free, то и компилятор тоже надо брать free-шный, то есть свободный. И, о чудо, можно скачать CodeBlocks уже в комплекте с компилятором minGW (Min imalist G NU for W indows). Качаем именно этот вариант! (codeblocks-8.02mingw-setup.exe 28 Feb 2008 19.3 MB) последний на момент написания статьи. Есть возможность скачать этот архив с двух сайтов Sourceforge или BerliOS, выбирайте сами. Установка программы тривиальна до безобразия, от вас не потребуется никаких навыков, кроме попадания и клацанья мышкой на нужной кнопке. Поставьте его в C:\Program Files\CodeBlocks. как он и предлагает по-умолчанию. При первом запуске выскочит окошко где надо будет указать компилятор с которым ИДЕ будет работать, если вы скачали архив с minGW, то напротив строки GNU GCC Compiler будет стоять слово Detect, в столбце Status. Жмыхаем дальше и попадаем в саму программу.

Давайте проверим ее работоспособность, выбираем Console Application жмем Create. CodeBlocks сам создал файл и обозвал его main.cpp. Заходим в него

И нажимаем F9. Так же (что равнозначно) можете нажать на иконку, которая находится в верхнем тулбаре, смотрите там идет шестеренка (скомпилить программу в exe-шник), треугольничик play(запустить exe-шник) и шестеренка с кнопкой play(что означает скомпилить, а потом запустить, по буржуйски Build & Run ) всплывающая подсказка подскажет вам, какую кнопку нажать.

Хеллоу Ворлд! Ого, все работает! Поздравляю!

Теперь разберемся почему SDL (S imple D irectMedia L ayer). Это движок для быстрого и качественного создания графических приложений, в том числе и игр. Его создатель, талантливый программист Sam Oscar Lantinga.

Он был главным программистом(Lead Programmer) в Loki Software (August 1998 - January 2002). Эта компания занималась тем, что портировала игры с одной платформы(Windows) на другую (Linux). Результатом их работы стала библиотека SDL. Которая уменьшала трудозатраты на такого рода перевод игр в разы. Кстати, они же и "родители" OpenAL библиотеки(кросплатформа для звука), которую потом подхватили такие киты как Creative Technology и Apple Computer. Теперь Сэм заслуженно работает в одной из самых известных гейм-девелоперских контор: Blizzard Entertainment.

Движок очень прост в освоении, есть активное комьюнити как на английском, так и на русском. А достаточно большое количество туторов, сделает ваш путь в освоении данного движка более легким. Стоит заметить, что идет постоянное развитие движка как самого ядра, так и дополнительных библиотек(модулей) уже насчитывается порядка 70 штук, отвечающих за работу со звуком, графикой, сетью, системами ввода и т.д. и т.п. К слову говоря, известный всем DosBox так же был написан с использованием SDL.

Как вы уже догадались SDL также работает на многих платформах(он собственно для этого и создавался). И мне кажется логичным объединение этих двух программ. То есть написание игр для различных платформ на кросплатформенном ИДЕ и кросплатформенном движке. И хочу заметить, что все три компонента, а именно ИДЕ(CodeBlocks) + компилятор(minGW) + движок(SDL) - бесплатны. Конечно, они бесплатны в рамках лицензии GNU.

Итак ИДЕ готово, и компилятор настроен, глаза дергаются, а руки делают ;) Остался последний шаг - установить сам SDL.

ШАГ 1. Что же приступим. Возможно, кто-то из вас не узнаете ничего нового, а кому-то это может пригодиться.

Первым делом скачиваем саму библиотеку SDL с офф. сайта. http://www.libsdl.org/download-1.2.php Смотрим в разделе "Development Libraries" будем ставить для Windows значит скачиваем "SDL-devel-1.2.13-mingw32.tar.gz" (это последний релиз на момент написания статьи). Надо ли говорить или повторять из вышесказанного, что нам нужна minGW версия? Думаю, это очевидно ;).

ШАГ 2. Распаковываем содержимое архива во временную папку ( к примеру в c:\sdl ) Я пользуюсь winRar-ом. но подойдет и другой архиватор, который сможет распаковать SDL-devel-1.2.13-mingw32.tar.gz. Ок.

Теперь нам надо открыть директорию, куда мы установили CodeBlocks и войти в папку include. У меня это C:\Program Files\CodeBlocks\include видите там много разных файлов, сюда нам надо переместить содержимое папки C:\sdl\include. то есть все хидеры(заголовочные файлы SDL). Другими словами из C:\sdl\include берем папку SDL и переписываем в C:\Program Files\CodeBlocks\include ВАЖНО! переписываем именно папку, смотрите:

Далее, содержимое папки c:\sdl\lib переписываем в папку C:\Program Files\CodeBlocks\lib. Так теперь, о том что делать с файлом SDL.dll(он находится в папке c:\sdl\bin), можно поступить двумя способами:

1. поместить этот файл в папку с вашим проектом. Но в этом случае в папку каждого вашего нового проекта надо будет класть этот файл, а иначе проект не запустится, не найдя SDL.dll рядом с собой.

2. можно поместить этот файл в C:\Program Files\CodeBlocks\bin или лучше в C:\Windows\system32 в этом случае, любой проект, скомпиленый для SDL вами или кем-то другим будет спокойно запускаться. Дело в том, что если запускаемое приложение нуждается в какой-то дополнительной библиотеке, то оно ищет эту библиотеку в текущей директории, а если его не находит там, то смотрит в C:\Windows\system32. Таким образом единожды поместив файл SDL.dll в эту папку, не будет никакой необходимости, как в первом случае, гонять этот файл по папкам. Я считаю это самым лучшим вариантом. Но если вы дадите поиграться в вашу новую игрушку другу, то не забывайте рядом с exe-шником положить библиотеку, ведь у него может и не быть этого файла в C:\Windows\system32.

ШАГ 3. Запускаем CodeBlocks выбираем SDL Application. И у вас сформируется проект, уже с минимальным SDL приложением. Запускаем (F9) и получаем вот это:

Если получаем кучу предупреждений (warnings), значит неправильно переписали папку include. Если компилится, но рушится при запуске, тогда приложение не нашло файл SDL.dll. Если все получилось, то радуемся ;) И можем уже начинать писать какую-нить простенькую игрулину.

Руководство по CodeBlocks

/ Руководство по CodeBlocks Выбор каталогов для генерируемых файлов (окончание)

4. На следующей странице мастера (см. рис. 4 ) ввести каталоги для собираемых (результирующих) и промежуточных файлов (объектных модулей) в поля Output dir. (Выходной каталог) и Objects output dir. (выходной каталог для объектных модулей). Запись относительного пути. \..\bin\Debug означает, что каталог будет находиться на два каталога выше относительно каталога, в котором располагается файл проекта ( sample_lib.cbp ). Это позволяет создавать временные файлы отдельно от исходных файлов проекта так, чтобы они не мешали при его переносе в другое место, резервном копировании и т. д. Данные настройки указываются отдельно для разных конфигураций проекта (“Debug”/“Release” options). После ввода данных будет создан проект.

Замечание: Конфигурацией проекта называется набор настроек, который имеет имя (по умолчанию создаются конфигурации “Debug” и “Release”). При сборке проекта можно переключать разные конфигурации, таким образом, получать различные версии одного и того же исполняемого файла. Обычно в конфигурации “Debug” устанавливаются настройки, приводящие

к созданию в исполнемом файле дополнительной информации для пошаговой

отладки, и отключаются все оптимизации. Данная версия используется для

Статья 3

Статья 3. Настройка IDE Code::Blocks для кросс-компилирования c SDL под Linux, Windows, WinCE

Цель статьи: настроить кросс-компиляцию для вышеуказанных платформ и понять как "прикручиваются" компиляторы на основе GNU GCC к IDE Code::Blocks. Попробовать простую отладку исполняемого файла Linux.

Содержание статьи:
1. Введение;
2. Установка Code::Blocks и библиотеки SDL для Linux;
3. Добавляем компиляцию для target (целевой платформы) Windows;
4. Добавляем target WinCE;
5. Минимально необходимая отладка исполняемого файла для платформы Linux;
6. Заключение.

Введение:
Здравствуйте, друзья. Эта статья - не перевод официальной инструкции к C::B и не учебник (Боже упаси, учить вообще не благодарное занятие). Просто хочу помочь сэкономить время таким-же новичкам как я, желающим компилировать свои программки (игрушки, демки) с использованием свободной библиотеки SDL. Надеюсь, что с ее помощью Вы настроитесь быстро и обойдете "грабли", на которые наступал я. Продвинутых пользователей Linux прошу простить меня за излишнюю подробность изложения им известных вещей и. поправляйте, если что не так, в Linux я тоже недавно =)
Установка тулчайнов для компиляции в систему подробнее описана в первой статье. но для Вашего удобства я вкратце продублирую это и здесь.

Установка Code::Blocks и библиотеки SDL для Linux
Для начала проверьте, установлен ли в системе компилятор языка С++ под названием g++ командой:
g++ --version в консоли. Если получите в ответ номер версии - все Оk, если нет- ставим g++ используя ваш любимый менеджер пакетов (у меня дистрибутив Kubuntu 9.10, но это здесь не так важно, думаю Вы умеете устанавливать пакеты в своем любимом дистрибутиве). Я в большинстве случаев предпочитаю оболочку Synaptic для системы управления пакетами apt (он простой и с GUI). Установить Synaptic, в свою очередь, можно из консоли командой:
$ sudo apt-get install synaptic
Здесь $ печатать не надо, он указывает что работа идет от текущего пользователя а не от администратора root - у него было бы #.

Запускаем Synaptic (или другое), печатаем в поле "быстрый поиск" g++ и видим, что нам предлагается для установки несколько пакетов. Ставим из предложенного g++ (у меня версии 4.4.1. отмечая чекбокс и нажав зеленую галку "Применить".
Почитать про GNU GCC: сайт проекта GNU GCC. страничка вики на русском языке .
Аналогично ставим пакет libsdl1.2-dev (нам пока достаточно его, установить дополнительные расширения библиотеки SDL мы сможем в любое время).
Почитать про SDL можно тут: сайт проекта. вики на русском языке. цикл статей Евгения aka E$h "Познакомьтесь, SDL". цикл статей (в настоящее время пополняется), на тему SDL и не только, Дмитрия aka dimanche13 статьи по SDL dimanche13 .

Теперь установим кросс-платформенную среду разработки Code::Blocks (страничка википедии на русском и более лиричное, немного устаревшее (2005г.) описание Алёны Сагалаевой ). От себя добавлю, что мне эта IDE нравится простотой установки и настройки.
Synaptic по запросу codeblocks предлагает для установки несколько пакетов. Ставим из предложенного codeblocks (сама IDE) и codeblocks-contrib (набор полезных плагинов для нее).

Теперь все готово для первого запуска. Стартуем Code::Blocks (далее просто C::B) из Меню запуска -> Приложения -> Разработка (или из консоли командой codeblocks).
Закрываем окно подсказок. Переднами меню под названием Start here. Проверим как работает компиляция SDL проекта для Linux. Для того, чтобы создать проект смело жмем на значек папки: Create a new project.
В появившемся окошке New form template выбираем тип проекта SDL project и жмем G o. Затем в окне SDL project заполняем поля Project title: имя проекта, например, primer (неожиданно, правда), Поле Folder to create project in указывает путь к папке в которой будут храниться наши проекты, у меня это /home/j3d1/proj/Codeblocks/ а Вы сделайте как Вам удобнее. Жмем кнопку N ext>. В появившемся окне выбора компилятора и конфигурации оставьте все по умолчанию и нажмите кнопку F inish.
Вуаля! - проект создан и готов к компиляции.
Чтобы увидеть код исходника проекта в окне Management (оно слева) раскройте папку Source нажав значок ">" перед ней. Дважды кликните на файле main.cpp - файл и откроется =). "Офигеть! он за нас еще и проги писать будет!", наверное воскликнули Вы? Нет, это всего лишь проект SDL по умолчанию.
Скомпилируем его, выбрав в меню Build пункт build. Запустим исполняемый файл Build -> Run. Работает? Отлично!
Но чтобы обеспечить проверку кросс-компиляции мы будем использовать простенький С++ кроссплатформенный код, хорошо компилящийся под эти 3 ОС. Для этого удалите весь исходный код с экрана редактора C::B и вставьте туда вот эту прогу прямо из текста статьи:

#include <cstdio>
#include "SDL.h"
const int SCREEN_WIDTH= 240;
const int SCREEN_HEIGHT= 320;
const int SCREEN_BPP= 16;
Uint16 back_color;
SDL_Surface *screen= NULL;
int main( int argc, char* args[] )
<
SDL_Init(SDL_INIT_VIDEO);
screen= SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE);
if(screen== NULL) printf("Unable to SetVideoMode\n");
else printf("VideoMode settings -Ok\n");
back_color= SDL_MapRGB(screen->format, 128, 0, 0);
SDL_LockSurface(screen);
SDL_FillRect (screen, NULL, back_color);
SDL_UnlockSurface(screen);
SDL_Flip(screen); // show screen
SDL_Delay(3000);
printf("Quiting SDL. \n");
SDL_FreeSurface(screen);
SDL_Quit();
return 0;
>

Этот исходник подробно прокомментирован в первой статье.
После компиляции и запуска (можете просто нажать F9 -build and run) Вы должны на 3 секунды увидеть поверхность SDL 240х320, окрашенную красным и окно консольного вывода, что очень удобно, правда?:

Для Linux по умолчанию настроены две цели компиляции (Build targets): это Debug и Release:

До сих пор мы компилировали для target: Debug, переключитеcь на release, постройте проект и запустите его, это удобно делать так-же кнопками "шестеренка" и "пуск" на панели инструментов (см. рис. выше). В чем разница между результатами компиляции Build и Target? Для Target не запускается консольное окно, т.к. в свойствах (Project-> Properties-> этой цели выставлено Type: GUI applications (вместо Console Application у цели Debug).

Еще одно различие между ними: сравните размер получившихся исполняемых файлов (они находятся в (/папка проекта/bin/Debug (и Release)/). Разница в размере составляет 8871 байт - это отладочная информация для отладчика gdb. в цели Release она удаляется после компилирования. Это работа флага компиляции [-s].

Project-> Target options-> вкладка Build targets-> выберите цель Release-> нажмите кнопку Build options (см. рис. выше). Откроется окошко (см. рис. ниже), в свойствах компилятора есть строка Strip all symbols. этот ключ компиляции [-s] и отвечает за удаление отладочной информации из исполняемого файла. Ознакомьтесь с другими активными и неактивными ключами компиляции. Подробнее узнать о них Вы можете в документации на компилятор GCC.

Только что мы узнали о настройках целей компиляции (targets). Для каждой цели, как Вы видите, можно задать свои опции компилера, линкера и пути поиска подключаемых хедеров и библиотек. Но существуют так-же и глобальные настройки компилятора, которые мы еще не смотрели.
Предлагаю сделать это, а заодно настроим компилятор для Windows под названием MinGW.
Упс, небольшая поправка, удалите картинку cb.bmp из проекта (см. рис. ниже) нам она не понадобится.

Добавляем компиляцию для target (целевой платформы) Windows
Наш исходный код (файл main.cpp) без переделок может быть скомпилирован и под Windows. Для этого применим компилятор MinGW (Minimalist GNU for Windows) http://www.mingw.org. MinGW обеспечивает нативную функциональность и производительность посредством прямых вызовов Windows API и хорошо подходит для компиляции кроссплатформенных библиотек подобных SDL и приложений c их использованием.
Установим MinGW в нашу систему. Самый простой путь – установить из менеджера пакетов. Ставим пакет mingw32 (он потянет за собой runtime и binutils).

Теперь скачаем и установим SDL для MinGW. Тут менеджер пакетов нам не помощник — надо руками. Скачиваем отсюда: http://www.libsdl.org/download-1.2.php

Распаковываем полученный архив (я не мудрствовал и сделал это прямо их контекстного меню архива). Переходим в mc в этот архив (так чтобы видеть файл Makefile), гасим панели,Ctrl-O, в консоли становимся рутом у меня
$ sudo su
затем устанавливаем SDL для mingw32
# make cross
выводом этой команды будут много строк копирования (со знаком > в середине). Кстати посмотрите куда кладутся .h и .a файлы, там же увидите где потом взять SDL.dll чтобы положить его в папку с .exe файлом (который мы скоро создадим).
Ок, все готово для настройки компиляции под Windows в C::B.
Перейдите в меню Settings-> Compiler and debugger (рис. ниже).

Выбираем GNU GCC Compiler и жмем кнопку Copy - ведь настраивать свой mingw32 компилятор мы будем на основе GCC. Зададим имя для нашего компилятора:

Потом выскакивает окно с напоминанием настроить тулчайн для только-что созданного компилятора. Конечно настроим =) Выберите вверху окна наш только-что созданный компилятор. Compiler settings не трогаем, а вот в Linker settings впишите имена необходимых нам библиотек (рис. ниже):

Теперь добавим (Add) пути Compiler'a, Linker'a и Resource compiler'a (три рис. ниже):

Наконец, настроим Toolchain executables (помните напоминание):

Настройте, выбирая в директории /usr/bin/ После выбора recource compilera (он последний, т.к. make не трогаем), нажмите кнопку Auto detect. Она должна дать путь /usr как на рисунке.
Вкладку Custom variables не трогаем, а вот во вкладке Other settings для Compiler logging выбираем Full command line (см. рис ниже):

Этот пункт требует вывода полной строки в Build log при компиляции, и если что-то не пойдет с настройкой Вы всегда можете спросить у знающих товарищей, или разобраться сами, используя этот лог.
Вот и все с глобальными настройками, жмем кнопку Ок.

Теперь создадим и настроим новую цель компиляции.
Для этого перейдите Project-> Properties-> вкладка Build targets, выберите цель Release, на ее основе будем делать свою цель для Windows. Нажмите кнопку Add и впишите имя новой цели (см. рис. ниже):

Теперь внимательно заполните поля для новой цели: Type (тип проекта), Output filename (имя выходного файла), Object output dir (директория для объектных файлов).

Теперь нажмите кнопку Build options и сразу же выберите для новой цели наш новый компилятор. Затем перейдите на вкладку Linker settings и пропишите вызываемые библиотеки. Примечание: libmingw32 должна линковаться перед библиотеками SDL (поэтому она здесь):

Во вкладке Search dir пропишите где искать хедеры и либы SDL:

В конце нажмите Ok, выберите нашу только что созданную цель (Build target: win32_release) и попробуйте скомпилировать екзешник. Не забывайте, чтобы Ваше SDL приложение работало, в папку с экзешником (у меня это /home/j3d1/proj/Codeblocks/primer/bin/win32_release/) нужно положить библиотеку SDL.dll. Возьмите ее отсюда: /usr/local/cross-tools/i386-mingw32/bin/.
Компиляцию для Windows мы с Вами настроили. Вот и ладненько, теперь идем дальше.

Добавляем target WinCE
На этот раз все еще проще. Для компиляции будем использовать GNU gcc (cegcc) — именно его разновидность -компилятор mingw32ce, обеспечивающий нативный код под WinCE. Для данной платформы воспользуемся библиотекой SDL 1.2.6 c патчем от Arisme скачать все это можно с этой странички. Но Вы можете поступить проще - скачать архив. который содержит уже установленные mingw32ce и пропатченную под WinCE SDL. Вам останется только разархивировать и разнести по папкам файлы из opt в /opt а из usr в /usr (конечно, переносим файлы из-под рута). И все. Для начала нам этого вполне хватит.

Подключим тулчайн для wince. За основу, как и в случае с MinGW возьмем настройки компилятора GCC. Перейдите в меню Settings-> Compiler and debugger (рис. ниже). Выберите компилятор GNU GCC:

Теперь жмем кнопку Copy и вписываем имя нашего компилятора для WinCE

Во вкладке Compiler Settings -> Other options отключаем поддержку исключений (если не отключать, то придется таскать с экзешником библиотеку libstdc++-6.dll почти мегабайт весом). Подробнее про это можете прочесть на сайте проекта cegcc .

Вкладку Linker оставляем без изменения, открываем вкладку Search directories и заполняем в ней вкладку Compiler:

Заполняем данные во вкладке Toolchain executables

Настройте, выбирая в директории /usr/bin/ (там у нас размещены символические ссылки на файлы компиляторов и утилит для mingw32ce (Вы же их туда скопировали, не так ли?). После выбора linker'a static libs (он последний), нажмите кнопку Auto detect. Она должна дать путь /usr т.е. как на рисунке.

Теперь во вкладке Other Settings в Compiler logging выставим Full command line, как и при настройке MinGW:

На этом настройка глобальных опций компилятора для wince закончена. Жмем Ok.

Теперь создадим цель компиляции для wince. Для этого перейдите Project-> Properties-> вкладка Build targets, выберите цель Release (Именно Release а не win32_release), на ее основе будем делать свою цель для Windows. Нажмите кнопку Add и впишите имя новой цели (см. рис. ниже):

Теперь внимательно заполните поля для новой цели: Type (тип проекта), Output filename (имя выходного файла), Object output dir (директория для объектных файлов):

Жмем вкладку Build options для нашей цели.
Ниже, во вкладке Compiler пропишем путь к хедерам SDL:

Перейдем в Linker укажем для линковки libSDL следующее:

Жмем Ok, выбираем нашу только что созданную цель компиляции Build target: wince_release и компилируем наш исходник для wince. SDL.dll для него не потребуется, т.к. библиотека прилинкуется статически (войдет в exe файл). Использование статически прилинкованной библиотеки SDL накладывает на нас определенные обязательства: мы имеем право использовать SDL в таком виде только в свободных проектах. Подробнее об использовании этой библиотеки читаем здесь .
Теперь рассмотрим простую отладку для Linux.

Минимально необходимая отладка исполняемого файла для платформы Linux
Не воспользоваться возможностями Code::Blocks для отладки было бы неправильно. Рассмотрю минимальную отладку под Linux (с отладкой под другие ОС я просто пока не разбирался). Минимальной отладкой я считаю отслеживание значений переменных в ходе выполнения программы. Давайте отследим какое значение принимает в программе переменная back_color.
Для начала настроим макет отображения для отладки, чтобы в дальнейшем выбирать его двумя щелчками мыши. Сейчас мы работаем в макете редактора по-умолчанию - Code::Blocks default можете убедиться в этом выбрав View-> Layouts:

В меню File пункт Save everything - сохраним результаты работы.
Далее, для того, чтобы добавить окно отладки выберите Debug-> Debugging window-> Watches (слежение):

Перенесите полученное окошечко на уровень тулбара и отпустите (C::B при этом иногда падает, так что не пугайтесь, Вы же только-что сохранились). Должно получиться так:

Выберите цель компиляции- Debug, скомпилируйте проект и поставьте точку останова (breakpoint) ниже инициализации переменной back_color:


Запустите отладку нажав Debugging/Continue, или выбрав Debug-> Start. Отладка остановится на нашей breakpoint. Теперь наведите курсор на переменную back_color, нажмите правую кнопку мыши и выберите в контекстном меню Watch 'back_color':

Вы видите как в окне Watches появилась переменная back_color и ее значение:

Далее Вы можете проболжить отладку (Continue) или завершить ее (Stop debugging).
Теперь для написания кода можно пользоваться макетом С::B default а для отладки макетом Debugging. Создавайте макеты (layouts) на свой вкус (благо для одной только отладки есть окна Breakpoints, Call stack, CPU Registers, Disassembly, Examine memory, Running threads и, известный нам, Watches).

Заключение

Вот мы и научились (в общих чертах) подключать компиляторы к свободной IDE Code::Blocks и краем глаза взглянули на отладку=). Я еще не разобрался как сделать шаблон такого кросс-платформенного проекта, чтобы его можно было выбирать из меню создания проекта. Пока пользуюсь настроенным минимальным SDL решением (просто для нового проекта копирую эту папку и в ней уже пишу дальше).
Если в ходе настройки у Вас появились вопросы, предложения, поправки и дополнения к статье - пожалуйста оставляйте комментарии или пишите на e-mail j3d1adm1n@yandex.ru. Надеюсь, эта статья была Вам полезна.