Утилита fltk-config

Другое средство для создания из текстовых файлов и командной строки полноценных графических приложений с меню, фото (двух-) и 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.

Источники