Пятница, 26.04.2024, 18:03
PIXELCODEПриветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Категории раздела
SDL и C/C++ [6]

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » SDL и C/C++

Статья 4. Добавляем в Code::Blocks под Linux компиляцию для Dingux
   Цель статьи: добавить в наш учебный проект возможность компиляции (целевую платформу или target) для Linux-дистрибутива под названием Dingux. Компилировать будем на Linux десктопе.

   Содержание статьи:
1. Введение;
2. Настройка компилятора и линкера;
3. Настройка цели компиляции dingux_release;
4. Заключение.

   Введение:
   Некоторые начинающие программеры являются счастливыми обладателями прикольной (а самое главное - недорогой) игровой консоли Dingoo A-320. Говорить о ее достоинствах можно, конечно, много, но одно из наиболее весомых - на нее портирован Linux. Я говорю о дистрибутиве Dingux. Владельцы этой консоли знают, и, скорее всего, уже установили это чудо на флеш-карту своей приставки.
   Так вот, эти самые начинающие программисты (к коим отношу и себя) не прочь попробовать писать на C/C++ под Dingux c  применением библиотеки SDL. Чтобы сэкономить Вам время опишу настройку компиляции для Dingux свободной среды разработки Code::Blocks (о Code::Blocks, компиляторе GNU GCC, и библиотеке SDL прошу почитать в статье №3. Там более подробно описано то, что дано здесь в сжатом виде, описана начальная отладка в Code::Blocks и еще много чего полезного).
   Еще раз повторюсь: компилировать будем на Linux десктопе. Вам понадобится комп с Linux и установленным из репозитория Code::Blocks.

   Настройка компилятора и линкера:
   Для начала скачайте тулчайн (набор необходимых пакетов программ для компиляции и генерации выполняемого кода из исходных текстов программ) отсюда Размер файла 58.9 Mb. Разархивируйте полученный файл.
   Из-под рута скопируйте папку mipsel-linux-uclibc в /opt/
Скопировали? молодцы! Пол-дела сделно.
   Запускаем Code::Blocks, создаем C++ SDL проект (все эти шаги подробно описаны в статье №3). Затем в файл main.cpp копируем этот простой кроссплатформенный код (он подходит и для платформ Windows, WinCE, Linux - как если бы Вы "прикручивали" dingux компилятор к этим уже настроенным targets). Учебный код такой:

#include <cstdio>
#include "SDL.h"

#ifdef UNDER_CE
const int SCREEN_WIDTH= 240;
const int SCREEN_HEIGHT= 320;
#else
const int SCREEN_WIDTH= 320;
const int SCREEN_HEIGHT= 240;
#endif
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");
#ifdef mips
  SDL_ShowCursor(SDL_DISABLE);
#endif
  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_Flip(screen); // show screen
  SDL_Delay(1000);
  SDL_Flip(screen); // show screen
  SDL_Delay(4000);
  printf("Quiting SDL...\n");
  SDL_FreeSurface(screen);
  SDL_Quit();
  return 0;
}


   Основные моменты похожего исходника прокомментированы в статье №1. Если что-то непонятно - пишите в комменты, тогда я объясню. Да он простой. Традиционно выводит на экран красный квадрат с задержкой на 5 секунд. Многократное SDL_Flip применено для избежания "эффекта черных строк" внизу экрана при старте программы (особенности Dingux-порта SDL?).
   Начнем с настройка компилятора и линкера. Перейдите в меню Settings-> Compiler and debugger (рис. ниже)



Видим следующее окно, выбираем GNU GCC Compiler и жмем Copy. Прописывать новый компилятор будем на основе GNU GCC.



Задайте имя нового компилятора (Рис. ниже):



Теперь выберите только что созданный нами компилятор mipsel_linux compiler и откройте вкладку Search directories. Ниже, во вкладке Compiler добавьте пути к директориям в которых расположены заголовочные файлы тулчайна:



Аналогично пропишите пути к библиотекам для линкера, ресурс-компилер не трогаем:



Затем перейдите на вкладку Toolchain executables и настройте пути к компиляторам для С и С++(см. скриншот ниже). Компиляторы находятся в /opt/mipsel-linux-uclibc/usr/bin/



Во вкладке Other settings выставляем Compiler logging в Full comand line. Эта опция позволит Вам увидеть полную строку компиляции:



   Настройка цели компиляции dingux_release
   Теперь давайте создадим цель компиляции dingux_release для нашего проекта. Для этого откройте Project -> Properties:



В открывшемся окне перейдите на вкладку Build targets:



В нем выберите цель Release - на её основе мы будем создавать нашу новую target. Затем нажмите кнопку Add и задайте в окне ввода имя нашей новой цели dingux_release:



Теперь выберите только что созданную цель dingux_release и жмите кнопь Build Options:



Перейдите на вкладку Compiler settings в открывшемся окне (если она не активна) и выберите настроенный нами ранее компилятор mipsel-linux compiler:



После выбора компилятора жмем Ok. Затем настрайвайте параметры Вашей новой цели как на скриншоте ниже. Обратите внимание на параметры Type, Output filename (здесь будет размещен исполняемый файл после удачного компилирования), Objects output directories (здесть при компиляции разместятся объектные файлы):



После натройки жмем Ok.
Теперь выберите новую target из списка и скомпилируйте проект для неё. Всё. Перенесите полученный исполняемый файл на флеш-карту Dingux и запустите его при помощи file explorera.



   Заключение
Только что Вы настроили и опробовали (надеюсь что удачно) компиляцию микропроекта для Dingux. Для того, чтобы использовать эти настройки в Вашем следующем проекте рекомендую копировать папку с проектом и затем просто изменять название папки). Если настроиться у Вас не получилось - оставляйте комментарий к статье или пишите в адрес j3d1adm1n@yandex.ru помогу всем =)

Категория: SDL и C/C++ | Добавил: J3d1 (09.03.2010)
Просмотров: 4149 | Комментарии: 4 | Теги: Dingux, dingoo, Codeblocks, Кросс-компиляция в Linux, C++ | Рейтинг: 0.0/0
Всего комментариев: 4
1 Al-Rado  
0
Отличная статейка!

2 J3d1  
0
Спасибо =)

3 DDMZ  
0
А под нативную OS также можно компилить? только не юзать либы из дингукса?

4 J3d1  
0
Думаю, можно, надо этим заняться. Вот и будет тема для следующего тутора =)

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск

Друзья сайта
  • Все для веб-мастера
  • Программы для всех
  • Мир развлечений
  • Лучшие сайты Рунета

  • Copyright MyCorp © 2024 Создать бесплатный сайт с uCoz