Я изучаю графическое программирование давным-давно, когда я был пользователем Windows (в те дни и даже сейчас студенты в Индии начинают с Windows), поэтому программирование на C я изучал с помощью компилятора Turbo C. Со временем я перешел на Linux (Ubuntu и Fedora) и начал использовать GCC для C и G++ для C++, но у меня не было возможности работать с графическим программированием (я имею в виду алгоритмы рисования линий и кругов из учебника).

Недавно один из моих предыдущих студентов спросил меня, как запускать графические программы на Ubuntu (потому что я с самого начала, то есть с 1-го семестра, толкал их на Ubuntu, хотя позже после меня все откатилось на Windows). Для меня это тоже было ново, поэтому я решил изучить это. Я попросил его программу и обнаружил, что он пытается запустить программу, написанную для Windows-машины (по-прежнему много примеров в Интернете для Windows) на своей Ubuntu-машине. Итак, я решил настроить среду на своей Ubuntu и протестировать эти программы с модификацией. Но оказывается из-за смены версии ОС и модулей настройка не такая прямая. Есть учебники по установке и настройке, но многие из них либо устарели, либо не работали. Итак, я постарался решить все вопросы и собрать информацию в одном месте, этот пост основан на этой коллекции. Итак, в основном это собрано из различных переполненных ссылок и интернет-учебников. (Мой вклад заключается в том, чтобы заставить его работать на моем компьютере с Ubuntu 20.4 для версии GCC 9.3.0). Обязательно проверьте версию в вашей системе ($gcc — версия)

Для графического программирования с использованием C в ОС Linux (Ubuntu) нам необходимо установить библиотеку ‹graphics.h›, которой нет по умолчанию в большинстве компиляторов C (gcc).

Ниже приводится сводка различных советов/рекомендаций, доступных в Интернете, для подготовки рабочей среды.

Многие из них устарели, поэтому их нельзя применить, так как нужно немного изменить.
Источник: https://www.geeksforgeeks.org/add-graphics-h-c-library-gcc-compiler-linux/

Это один из хороших источников для установки библиотеки graphics.h, но пока я пытался использовать Ubnunt 20.4, она не работала как есть (из-за обновления/изменения нескольких зависимостей). Итак, в основном нужно установить libgraph на Ubuntu, чтобы получить Graphics.h работает: «Если вы хотите использовать Graphics.h на платформе Ubuntu, вам нужно скомпилировать и установить libgraph. Это реализация графического API turbo c в Linux с использованием SDL».

Источник libgraph: http://download.savannah.gnu.org/releases/libgraph/libgraph-1.0.2.tar.gz
Можно выполнить шаги по ссылке ниже с предложенными ниже изменениями. Чтобы упростить процесс, я скопировал шаги оттуда и представил здесь с необходимыми изменениями.

Источник: https://www.geeksforgeeks.org/add-graphics-h-c-library-gcc-compiler-linux/

Шаг 1. Сначала установите build-essential, введя
$sudo apt install build-essential

Шаг 2: Установите несколько дополнительных пакетов, введя (в этом libesd0-dev устарела, начиная с Ubuntu 18.04, поэтому запуск команды напрямую нарушит установку, поэтому запустите приведенную ниже команду вместо исходной команды, указанной в Geeksforgeeks ссылка.)
Сообщение об ошибке: Не удалось найти пакет libesd0-dev

$sudo apt-get install libsdl-image1.2 libsdl-image1.2-dev guile-2.0 \
guile-2.0-dev libsdl1.2debian libart-2.0-dev libaudiofile-dev \
libdirectfb-dev libdirectfb-extra libfreetype6-dev \
libxext-dev x11proto-xext-dev libfreetype6 libaa1 libaa1-dev \
libslang2-dev libasound2 libasound2-dev

Шаг 2.1. Установка libesd0-dev

Источник: https://askubuntu.com/questions/1082722/unable-to-locate-package-libesd0-dev-on-ubuntu-18-04
Для этого вам нужно добавить репозитории xenial, т.е. репозиторий предыдущего выпуска Ubuntu, который все еще поддерживается, в sources.list

Примечание: nano и gedit — это просто текстовые редакторы, вы можете использовать любой текстовый редактор по вашему выбору.
Шаг 2.1.1: откройте sources.list с помощью команды sudo
$ sudo nano /etc/apt/sources.list
или
$sudo gedit /etc/apt/sources.list
Шаг 2.1 .2: вставьте исходный код модуля в открытый файл и сохраните. (Ниже строки не являются командой, но вам просто нужно вставить это в открытый файл.

deb http://us.archive.ubuntu.com/ubuntu/ основная вселенная xenial
deb-src http://us.archive.ubuntu.com/ubuntu/ основная вселенная xenial

Шаг 2.1.3. Установите libesd0-dev
$sudo apt update && sudo apt install libesd0-dev
ШАГ 3. Теперь извлеките скачанный файл libgraph-1.0.2.tar.gz.
ШАГ 4. Перейдите в извлеченную папку и выполните следующую команду (используйте cd в терминале, чтобы перейти к распакованному файлу, или используйте open терминал из открытой папки.)
Здесь запуск make после ./configure выдаст ошибку о guile-libgraph.c, поэтому вам нужно настроить путь.
Ошибка: guile- libgraph.c:25:10: фатальная ошибка: libguile.h: нет такого файла или каталога
Источник: https://askubuntu.com/questions/942863/trying-to-install-libgraph
4.1 Установите или проверьте наличие установки guile-2.0-dev
$sudo apt install guile-2.0-dev

4.2 настроить путь к модулю в сценарии конфигурации.

$CPPFLAGS="$CPPFLAGS $(pkg-config — cflags-only-I guile-2.0)" \
CFLAGS="$CFLAGS $(pkg-config — cflags-only-other guile-2.0)" \< br /> LDFLAGS="$LDFLAGS $(pkg-config — libs guile-2.0)" \
./configure

4.3 Запуск команды make после успешного выполнения предыдущей команды
$make

//если результат будет успешным, перейдите к следующему шагу, в противном случае попробуйте сначала отладить его.
4.4, после настройки всех требований к установке сейчас, установите модуль
$sudo make install
4.5 Теперь скопируйте исходный код в папку lib
$sudo cp /usr/local/lib/libgraph.* /usr/lib

Это сделает среду готовой к работе с файлом graphics.h, но если вы хотите запустить код, например, приведенный ниже код, вы получите сообщение об ошибке, например:
неопределенная ссылка на `initgraph' Ubuntu 20.4 и для всех вызываемых функций. .
Это связано с некоторой проблемой пути, поэтому вы можете пройти через нее, просто передав некоторый аргумент (-lgraph) при компиляции исходного кода. То же самое применимо как для C/C++. см. следующий шаг для компиляции и выполнения программы.
Примечание:
1. Многие из примеров кода в Интернете предназначены для компилятора TurboC на базе Windows, поэтому он не будет работать в среде Linux, как он.
2. Удалите conio.h, иначе вам нужно установить его также для Linux, вы можете использовать delay() вместо getch(), чтобы остановить экран после выполнения кода.

Примеры программ: (Примечание: не написано, а взято из интернет-источника, ссылки даны последними)

Другая ссылка для примера кода:
https://www.thecrazyprogrammer.com/2017/01/dda-line-drawing-algorithm-cc.html
https://www.includehelp. com/code-snippets/c-graphics-program-to-draw-a-line.aspx
http://vbaviskar.blogspot.com/2016/11/program-in-c-in-ubuntu -line-drawing.html

Спасибо, что читаете. Надеюсь, это будет полезно. Дайте мне знать, если вы получите какие-либо ошибки или сможете успешно запустить свою программу. Вы можете проверить включенные ссылки для получения более подробной информации или отладить свои конкретные ошибки.