Другое средство для создания из текстовых файлов и командной строки полноценных графических приложений с меню, фото (двух-) и OpenGL (3D-графики) - это утилита fltk-config
.
Для установки в типовом Ubuntu/Debian Linux дистрибутиве или его производных - нужно поставить пакет:
apt install libfltk1.3-dev
Вместе с ним установится библиотека FLTK, которую рекомендует сам автор языка программирования C++ Бьерн Страуструп в своей книге "Программирование. Принципы и практика использования C++" со всеми заголовочными файлами и статической библиотекой.
Простейшая GUI-программа из единственного окна, на языке C++ (допустим в файле fltk.cxx
) может выглядеть так:
// Описание функций библиотеки FLTK
#include <FL/Fl.H>
// Описание класса Окна
#include <FL/Fl_Window.H>
// Точка входа
int main(){
// Создадим окно 500 на 500 точек с заголовком "Простейшая программа"
Fl_Window win(500,500, "Простейшая программа");
// Отобразим окно нашего приложения
win.show();
// Запускаем цикл событий проргаммы и выдаём код возврата
return Fl::run();
}
Собирается она до исполнимого модуля одной короткой строчкой:
fltk-config --compile fltk.cxx
g++ -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/freetype2 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -g -O2 -fvisibility-inlines-hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -o 'fltk' 'fltk.cxx' -Wl,-Bsymbolic-functions -lfltk -lX11
Как видим, fltk-config
подставляет остальные опции компилятору GCC/C++ по указанию каталогов с заголовочными файлами, именами нужных для сборки (линковки) библиотек и другую нужную информацию за нас. Нет необходимости искать и прописывать всё это в том или ином виде в развесистом меню и опциях IDE среды. На выходе - тоже ничего лишнего: никаких служебных и объектных файлов. Только исполнимый файл fltk.