18/5/2026

Lazarus op Linux

Filed under: — cybrarian @ 2:29 pm

Programmeren voor de Linux desktop (of CLI) met tools onder GPL vrije-software-licenties kan op veel manieren; een universeel/platformoverschrijdende is de combinatie Free Pascal + Lazarus, (de gemakkelijkste is waarschijnlijk Gambas).
– Free Pascal is de programmeertaal (afgekort: fpc).
– Lazarus is de programmeeromgeving (IDE, trouwens zelf geschreven in fpc)

Geschiedenis
– pascal was een veelgebruikte programmeertaal in het onderwijs ten tijde van de tekst-schermen.
– er waren pogingen om een vrije visuele programmeeromgeving te maken die Pascal gebruikte, zoals het Megido project dat rond 1998 verder wilde bouwen op de SpeedSoft Sibyl IDE en Free Pascal, en die gecombineerd en als OS/FS naar Linux wou brengen. Wat uiteindelijk niet gerealiseerd werd en het project viel uiteen in 1999.
– de behoefte aan een visuele programmeertaal voor Linux werd in 1999 ingevuld door de eerste versie van Gambas, dat in plaats van Pascal een basic-achtige taal gebruikte, en waarvan de IDE ook gewoon Gambas heette (en die ook in Gambas geschreven is).
– Ongeveer op dat moment werd het Lazarus project gestart, dat de ambitie had om een “Delphi voor Linux” te maken, de visuele componenten kregen vorm in 2001, en de eerste beta-versie van Lazarus verscheen in 2003.
– In 2005 was Gambas aan versie 1.0.
– In 2008 verscheen Gambas2, een volledig herwerkte versie die overschakelde van vlottende vensters naar een inclusief venster, en een volledig vernieuwde vorm had, maar het was ook duidelijk dat Gambas niet de ambitie had om cross-platform te worden.
– in 2012 kwam van Lazarus de offiële versie 1.0 uit.
– Momenteel is 4.6 de laatste versie, uitgekomen in februari 2026.

Lazarus
– de gegevens over een Lazarus project wordt bewaard in een “.lpi” bestand.
– het bevat bestandsverwijzingen, compiler instellingen, enz.
– een project bewaren biedt aan “unit1.pas” te bewaren in de gekozen map.
– het project heet standaard waarschijnlijk “Project1”, en je zal dan allerlei bestanden terugvinden met die naam; Project1.lpi, Project1.lpr, Project1.lps, Project1.res, Project1.ico, Unit1.lfm, Unit1.pas, en er is ook een Backup map aangemaakt.
– als je daarna bv op die Unit1.pas klikt, gaat je project terug open in Lazarus.
www.lazarus-ide.org

OpenSUSE 15.4
– software installeren, “Lazarus”, kiezen, bijjkomende paketten bevestigen.
– Lazarus 2.2.6 (van packman repository!)
– Ook de Qt5 widgetset support zonder conflicten.
– Er is wel een foutmelding van Fppkg, dat de eigen package manager blijkt te zijn. Als je die niet gaat gebruiken kan je deze fout negeren. Mij lukte het in deze versie niet om het juist ingevuld te krijgen (dit is ook een oude versie, met andere/nieuwere krijg je die fout niet, en is het trouwens ook leeg).

OpenSUSE 15.5
– software installeren, “Lazarus”, kiezen, bijjkomende paketten bevestigen.
– qt5, 6 ging niet (conflicten)

Paketten (3): fpc, fpc-src, lazarus
Tot. installatiegrootte: 1,257 Gb
Download: 184,80 MB

– Geïnstalleerd: 2.2.4 (met FPC 3.2.2)

Lazarus is aanwezig in het menu onder Ontwikkeling, Lazarus, en start razendsnel op.

Ik druk op start (run) om het lege vensterprogramma te compileren, en dat start op als leeg venster met titelbalk naam: Form1 (2)
(waarschijnlijk omdat Form1 van de screen designer nog open staat als “1”; ik zit in een multi-window environment)

Ik voeg een button, tekstlabel en label veld toe, en druk run:
Ok, venster opent met die twee elementen.

Als ik code-tekst intik krijg ik op het scherm suggesties (zoals ik gewend ben in Gambas).

Ik komt een foutmelding bij uitvoeren: class TButton not found.
En in het foutvenster lees ik:
“Hint: Unit StdCtrls not used in Unit1”

Door alles weg te halen en het terug op de form te zetten lukt het nadien wel.
Het valt me echter op dat de knop, of edit veld op de form verspringen als ik ze aanklik. Ze veranderen van plaats, soms achter een andere component.

Tumbleweed 20260515
– Lazarus en een groot aantal paketten worden geïnstalleerd :

Installed Packages: 70
at-spi2-core-devel, cairo-devel, dbus-1-daemon, dbus-1-devel, fontconfig-devel, fpc, fpc-src, freetype2-devel, fribidi-devel, gdk-pixbuf-devel, glib2-devel, graphite2-devel, gtk2-devel, harfbuzz-devel, lazarus, lazarus-doc, lazarus-ide, lazarus-lcl, lazarus-lcl-gtk2, lazarus-lcl-nogui, lazarus-tools, libblkid-devel, libbrotli-devel, libbz2-devel, libdatrie-devel, libeconf-devel, libexpat-devel, libffi-devel, libglycin-devel, libgthread-2_0-0, libharfbuzz-cairo0, libharfbuzz-gpu0, libharfbuzz-raster0, libharfbuzz-vector0, libicu-devel, liblcms2-devel, libmount-devel, libpixman-1-0-devel, libpng16-compat-devel, libpng16-devel, libseccomp-devel, libselinux-devel, libsepol-devel, libthai-devel, libX11-devel, libXau-devel, libxcb-dbe0, libxcb-devel, libxcb-dri2-0, libxcb-screensaver0, libxcb-xf86dri0, libxcb-xtest0, libxcb-xvmc0, libXext-devel, libXfixes-devel, libXft-devel, libXi-devel, libXrender-devel, libXtst-devel, libz-ng-compat1, lzo-devel, pango-devel, pcre2-devel, tcsh, tcsh-lang, typelib-1_0-GdkPixdata-2_0, typelib-1_0-Gly_2, typelib-1_0-Gtk-2_0, xorgproto-devel, zlib-ng-compat-devel

– Bij het starten de keuze voor Classic/Modern IDE* (ik kies hier de Single Window versie), alle andere dingen staan ingevuld/ok, start IDE…
– Versie: 4.6, fpc 3.2.2, de About zegt: “Write Once, Compile anywhere” en

“Lazarus is the missing part of the puzzle that will allow you to develop programs for all of the above platforms in a Delphi-like environment. The IDE is a RAD tool that includes a form designer.”

– Ik krijg in deze versie(*) niet onmiddellijk een Form te zien als scherm, die zit in het tabblad Form (van Code Form Anchors).

Tumbleweed (older)
– Tumbleweed 20241209 ( bij recentere versies van Tumbleweed 2025.. krijg ik een conflict met x)
– software, zoek Lazarus
– Lazarus en een groot aantal sub-paketten worden getoond: lazarus, -ide, -doc, -tools, -lcl-nogui, -lcl-gtk2,…
– opvallend: lcl-Qt5/6 staan niet mee geselecteerd.
– bevestigen:…
– installed packages: 9 (fpc, fpc-src, lazarus, -tools, -doc, -ide, -lcl, -lcl-gtk2, -lcl-nogui.
– Versie: IDE 4.6.

Lazarus is aanwezig in het menu onder Ontwikkeling, Lazarus, en start op met een Configure Lazarus IDE, met keuzescherm:
IDE:
– classic IDE (multi-window)
– modern (Single Window)
Form Editor:
– classic IDE (multi-window)
– modern (Single Window)

En andere tabbladen die:
– verwijzen naar /usr/lib64/lazarus/ voor de ide/lazarus.lpi
– compiler /usr/bin/fpc
– FPC sources /usr/share/fpcsrc/
– Make /usr/bin/make
– Debugger
Ik laat alles standaard staan.

Onderaan rechts dan de knop “Start IDE”

Lazarus start snel, en toont bij About Lazarus version 4.6 met FPC version 3.2.2

Bij het starten van een lege applicatie (zoals die opent op scherm), komt de vraag om te kiezen voor de debugger:
– Enable Dwarf2 with sets
– Enable Dwarf2 (-gw)
– Enable Dwarf 3 (-gw)
laatste staat standaard, ik bevestig (of: run with no debugger).

Ik krijg wat warnings, en het (leeg scherm)-programma opent als “Form1”

Ik kan een label toevoegen, en een edit veld, en door de druk op de knop de tekst veranderen.

De “completion” lijkt hier niet te werken, maar als ik ga zoeken in de instellingen vind ik dat ze op 1 seconde wachttijd staan, eens ik ze korter zet, werken ze prima.

Ik heb er verder geen project mee gemaakt, maar de IDE voelt aangenaam, maarr ook wel uitgebreider dan Gambas.
Volgende stap bv: https://wiki.freepascal.org/Lazarus_Tutorial

Powered by WordPress