Code::Blocks: использование графики OpenBGI
Для курса адаптирована графическая библиотека OpenBGI, для использования требуется подключить ее в настройках компановщика Project → Build options (вкладка Linker settings): в правом окне (Other linker options) прописать -lopenbgi -lgdi32 (вторая библиотека, стаднартная библиотека Windows, требуется для работы OpenBGI).
Можно также указать -mwindows -lopenbgi,
но это приведет к отключению консольного ввода/вывода вообще (то есть следует делать только, если он действительно не нужен). Также в этом случае следует изменить тип приложения на графическое: Project → Properties, вкладка Build targets и для всех целей (Debug, Release) изменить тип с Console Application на GUI application (после этого консольное окно не будет появляться вообще).
После подключения библиотеки можно включать заголовочный файл graphics.h.
Документация к OpenBGI
Официальная на данный момент отсутствует. Что известно.
- Так как графика отображается в отдельном окне, функции консольного ввода вывода обрабатываются отдельно, нажатия клавиатуры в графическом окне обрабатывают readkey() и anykeypressed().
- Открытие графического окна осуществляется с помощью initgraph(int * gd, int * gm, const char * path); при этом '*gd' может быть DETECT, VGA (эквивалентны), CUSTOM (для пользовательского размера окна). Пример dg = CUSTOM;
gm = CUSTOM_MODE(500,400);
initgraph(&gd, &gm,""); создаст окно 500×400. Нельзя использовать CUSTOMgd с опцией FULL_SCREEN. '*gm' может быть VGAHI, VGALO, VGAMED (размеры соответствующие DOS BGI), также есть расширенные режимы GM_800x600, GM_1024x768 (это символические константы), 'path' может быть пустой строкой, но может также содержать опции (можно с разделителем или без)- "RGB" — использовать rgb режим вместо 16 цветом (есть соответствующие цветовые макросы);
- "FULL_SCREEN" — установить полный экран;
пример: initgraph(&gd, &gm, "RGBFULL_SCREEN"); — полный экран с RGB режимом.
Санкт-Петербургский государственный университет © Кафедра информатики математико-механического факультета СПбГУ.
C++ Установка библиотек в Code::Blocks
В этой статье описывается, как настроить новые библиотеки в среде Code::Blocks.
Введение
На форумах есть много тем об установке библиотек в Code::Blocks, поэтому я надеюсь, что с помощью этой статьи вы сможете правильно установить все необходимые библиотеки. Используемая версия Code::Blocks – 10.05.
Главные файлы
Существует два способа включения заголовочных файлов (*.h / *.hpp) нашей библиотеки, я расскажу о более простом и “удобном”.
Первое, что нам нужно сделать, это извлечь все папки и файлы в какую-нибудь папку, например, в папку Library, расположенную на рабочем столе.
Затем в нашей IDE мы создаем новый проект. Теперь самый важный момент, нажимаем на кнопку, как показано на рисунке:
В появившемся окне слева щелкните по имени нашего проекта (чтобы не делать это отдельно для режима Debug и Release), затем на вкладке Search directories, затем на вкладке Compiler:
Нажмите Добавить и введите путь* к папке include в папке библиотеки, в моем случае это будет:
C:\Users\User\Desktop\Biblioteka\include.
Если это уже сделано, переходим к связыванию.
Ссылка
С открытым окном (Project -> build options) мы возвращаемся на вкладку Search directories, но на этот раз открываем вкладку Linker.
Снова нажмите кнопку Add и введите путь* к папке lib в папке библиотеки, в моем случае он выглядит следующим образом: Библиотека C:\Users\User\Desktop\Biblioteka\lib.
Если у нас это есть, мы открываем вкладку настроек Linker, и там есть еще одна кнопка Add. Файл, который мы хотим добавить, имеет расширение *.a или *.lib. Мы можем добавить такой файл, набрав его путь*, или просто набрав его имя, например, “library”. (библиотека.а).
– путь не нужно вводить вручную, просто нажмите кнопку “…” и откроется другое окно с выбором файла(ов).
*.dll файлы
Последний шаг – загрузка файлов *.dll. Если при запуске приложения вы получите аналогичное сообщение:
Это означает, что вы не добавили указанный файл *.dll. Для этого просто найдите указанный файл (в моем случае “allegro_font-5.1.dll”). Обычно он находится в папке: Library, а затем поместите его рядом с нашим приложением *.exe (в той же папке).
Завершение
Если вы сделали все так, как я описал в этой короткой статье, ваш проект должен компилироваться правильно, без ошибок типа:
Code language: HTTP (http)main.cpp|2|error: biblioteka.h: No such file or directory
Code language: JavaScript (javascript)main.cpp|10|undefined reference to `function'
Однако, если ни один из них не отображается, очевидно, что имя заголовочного файла не существует, или вы не добавили все необходимые файлы в компоновщик.
Code Blocks и библиотеки
Компилю бинарник под arm на кросскомпиляторе, Code Blocks не видит библиотеки, хотя под х86 компилится нормально. Все библиотеки связаны с графикой. Например просит -lgtk-x11-2.0, libgtk установлен библиотека находится в /usr/lib/i386. / Что и где прописать?
nagllort
10.07.12 22:51:23 MSK
Компилю бинарник под arm
библиотека находится в /usr/lib/i386
anonymous
( 10.07.12 22:57:39 MSK )
в путях библиотек под арм, в папке кросс-компилятора скорее всего
anonymous
( 10.07.12 23:17:03 MSK )
Ответ на: комментарий от anonymous 10.07.12 23:17:03 MSK
в путях библиотек под арм, в папке кросс-компилятора скорее всего
Ты ошиблось сайтом: папки — в виндах
anonymous
( 11.07.12 00:29:01 MSK )
Ответ на: комментарий от anonymous 11.07.12 00:29:01 MSK
молодец, отбрил. с такими бравыми парнями лет через 20 линукс выйдет из стадии пре-альфа. на пару месяцев
anonymous
( 11.07.12 00:50:57 MSK )
Ответ на: комментарий от anonymous 11.07.12 00:50:57 MSK
лет через 20 линукс выйдет из стадии пре-альфа
anonymous
( 11.07.12 01:00:57 MSK )
Ответ на: комментарий от anonymous 11.07.12 00:50:57 MSK
молодец, отбрил. с такими бравыми парнями лет через 20 линукс выйдет из стадии пре-альфа. на пару месяцев
Как связаны стадии (что за стадии, кстати?) и ваши папки-мамки?
andreyu ★★★★★
( 11.07.12 02:47:08 MSK )
Ответ на: комментарий от anonymous 10.07.12 22:57:39 MSK
Ок. Где взять либы под arm?
nagllort
( 11.07.12 06:20:57 MSK ) автор топика
С CodeBlocks плотно не работал, но на основе опыта работы с другими юниксвей IDE, могу утверждать что:
1. Утверждение о том что именно CodeBlocks не видит библиотеки — неверное. Так как традиционно такие ИДЕ передают всю заботу о библиотеках и путях компилятору.
2. Соответсвенно библиотеку не видит компилятор.
Так что ищи проблему от компилятора. Вручную проверь какие библиотеки требуются в строке линковки. Вручную проверь, есть ли ИМЕННО ЭТИ БИБЛИОТЕКИ, которые требует кросс-компилятор.
dmitryalexeeff ★
( 11.07.12 07:22:32 MSK )
Компилю бинарник под arm на кросскомпиляторе
.
Например просит -lgtk-x11-2.0, libgtk установлен библиотека находится в /usr/lib/i386. /
При кросс-компиляции необходимо использовать соответствующие библиотеки, собранные под целевую платформу. Укажите директорию где располагаются необходимые библиотеки использую -L, например -L/home/user/arm/libs, если используется Makefile, при генерации Makefile средствами IDE необходимо прописать путь до библиотек в IDE.
imb ★★
( 11.07.12 09:07:30 MSK )
Ответ на: комментарий от anonymous 11.07.12 01:00:57 MSK
Измельчал совсем anonymous, оригинальнее «сам дурак» в голову не идет, скоро «а ты купи слона» в ход пойдет.
anonymous
( 11.07.12 10:41:39 MSK )
Ответ на: комментарий от andreyu 11.07.12 02:47:08 MSK
У меня у Вам две новости, одна плохая , другая хорошая 1. Измена проникла в сердце линукса — в фунаре, наутилусе и писимэне есть пункт в меню «Создать Папку», присоединяйтесь к мейнстриму, завязываете с каталогами,директориями и прочими фолдерами. 2. Викпедия.ру работает, что не может не радовать внезапно растерявшихся эрудитов
Установка библиотеки GTK+ в среде Code::Blocks под Windows
Скачайте и установите Code::Blocks. Для установки удобно выбрать пакет с уже интегрированным компилятором MinGW (но не обязательно, MinGW можно установить отдельно). Скачайте библиотеку GTK+. Поскольку структура каталогов библиотеки совпадает со структурой MinGW, имеет смысл их объединить, т.е. произвести разархивирование в тот же каталог, куда установлен MinGW.
Для того чтобы Code::Blocks подхватил компилятор GCC из пакета MinGW достаточно прописать в системной переменной окружения PATH дополнительные пути.
Например, если MinGW установлен в корень диска C:, то пути следующие
C:\minGW\ C:\minGW\bin\ C:\MinGW\MSYS\1.0\bin
в переменной PATH их необходимо дописать в конец существующей записи через символ «;», т.е. вот так:
существующее_значение;C:\minGW\;C:\minGW\bin\;C:\MinGW\MSYS\1.0\bin;
Изменить значение переменной PATH можно через панель управления Windows:
Панель управления -> Система -> Дополнительные параметры среды -> Дополнительно -> Переменные среды -> Системные переменные PATH -> Значение переменной
Поскольку библиотека GTK+ была разархивирована в папку MinGW, этих записей будет достаточно, в противном случае, необходимо добавить в PATH пути к библиотеке GTK+.
Следующим шагом настраиваем среду Code::Blocks на корректную работу с библиотекой GTK+.
В меню Settings -> Compiler
в диалоговом окне выбираем вкладку Compiler Settings -> Other Options
и вписываем команду
`pkg-config --cflags gtk+-3.0`
Затем в этом же диалоговом окне переходим на вкладку Linker Settings -> Other linker options:
и вписываем команду
`pkg-config --libs gtk+-3.0`
Нажимаем кнопку «OK». Настройка завершена. Можно создать первый свой проект на С с использованием библиотеки GTK+.
Выберите File -> New -> Projects -> Console Application
Пройдите все шаги мастера, правильно выбирая и вписывая значения. В готовом файле main.c напишите следующую программу:
#include // подключаем GTK+ /* с этой функции стартует программа */ int main( int argc, char *argv[]) { /* запускаем GTK+ */ gtk_init(&argc, &argv); /* создать новый виджет - окно */ GtkWidget *window; window = gtk_window_new(GTK_WINDOW_TOPLEVEL); /* дать окну заголовок */ gtk_window_set_title(GTK_WINDOW(window), "Example"); /* когда пользователь закроет окно, то выйти из приложения */ g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); /* отобразить окно */ gtk_widget_show(window); /* передаём управление GTK+ */ gtk_main(); return 0; }
Откомпилируйте и запустите.