# Applicaties bouwen en verspreiden [Programmeergidsen](LEESMIJ.md) **Bouwen**, of **compileren**, zet je broncode om in een applicatie. Een **native uitvoerbaar bestand** is een programma voor een bepaald besturingssysteem en een bepaalde processorfamilie. Een **besturingssysteem**, zoals Windows of Linux, beheert de programma's en apparaten van de computer. Een **doelplatform** kiest waar de geëxporteerde app moet werken. De opdrachten hieronder horen in een [terminal](../begrippen/opdrachtregel.md), niet in een `.pliro`-programma. Een **optie**, in het Engels *flag*, begint met `-`, zoals `--platform`; het woord erna geeft de keuze. De **CLI**, of *command-line interface*, is deze manier om Pliro met getypte opdrachten te bedienen. ## Exportopties begrijpen **Architectuur** betekent de processorfamilie waarvoor een app is gebouwd. **AMD64**, ook **x86-64** genoemd, is een x86-architectuur van 64 bits. De naam betekent niet dat alleen AMD-processors worden bedoeld. **ARM64** en **ARMv7** zijn ARM-architecturen voor verschillende apparaten. Het Pliro-doel `windows-386` betekent x86 van 32 bits. Dit zijn namen voor compatibiliteit, geen moeilijkheidsniveaus: kies wat je doelcomputer ondersteunt. **SSE2** benoemt een verzameling processoropdrachten die de Windows-x86-bouw van Pliro vereist. **RISC-V** is een andere processorarchitectuur; dat doel is nu experimenteel in Pliro. **Compressie** pakt het uitvoerbare bestand in minder bytes in. **UPX** is het hulpmiddel dat dit doet. Het verkleint het bestand en verandert het doelbesturingssysteem niet. Een **startscherm**, of *splash screen*, is het openingsplaatje dat kort verschijnt voordat het programma begint. **Metadata** is informatie over de applicatie, zoals haar titel en versie in Windows-bestandseigenschappen. Die staat los van de opdrachten die je programma uitvoert. Een **versieonderdeel** is één getal tussen de punten in een versie zoals `1.0.0.0`. **Uitrollen**, in het Engels *deploying*, betekent een applicatie voorbereiden en overbrengen naar de computer waarop ze gaat draaien. **SSH** staat voor *Secure Shell*: een versleutelde verbinding voor terminaltoegang op afstand. Pliro gebruikt SSH bij uitrollen naar de Pi; zie de [SSH-uitleg van Raspberry Pi](https://www.raspberrypi.com/documentation/computers/remote-access.html#ssh). **Deterministisch formatteren** betekent dat dezelfde code en opmaakregels dezelfde indeling opleveren. Een **canoniek uitvoerdocument** is een voor de computer leesbare beschrijving met het gedeelde Pliro-model, zodat Engelse en Nederlandse syntaxis dezelfde bewerkingen kunnen beschrijven. ## Opdrachtenoverzicht | Opdracht | Doel | |---|---| | `pliro new` | Een gelokaliseerd startproject maken. | | `pliro check` | Bronbestand of project controleren. | | `pliro run` | Controleren en uitvoeren met de Go-referentieruntime. | | `pliro repl` | Een interactieve sessie met blijvende toestand openen. | | `pliro fmt` | Deterministisch formatteren. | | `pliro translate` | Syntaxtaal omzetten met behoud van gebruikersinhoud. | | `pliro emit-model` | Het canonieke uitvoerdocument produceren. | | `pliro build` | Een native applicatie compileren. | | `pliro deploy` | Raspberry Pi ARM64 bouwen en via SSH uitrollen. | | `pliro version` | De compilerversie tonen. | ```shell pliro check programma.pliro pliro run project.bipli pliro repl --locale nl --diagnostics nl pliro build -o programma.exe programma.pliro pliro build --platform windows-386 -o programma-x86.exe project.bipli pliro build --platform windows-arm64 -o programma-arm64.exe project.bipli pliro build --platform linux-amd64 -o programma-linux project.bipli pliro build --platform linux-arm64 -o programma-linux-arm64 project.bipli pliro build --platform raspberry-pi-arm64 -o programma-pi project.bipli pliro build --platform raspberry-pi-armv7 -o programma-pi-armv7 project.bipli pliro build --platform linux-riscv64 -o programma-riscv64 project.bipli pliro build --compress upx -o klein-spel.exe project.bipli ``` Native modi zijn `auto`, `console` en `window`. Stabiele doelen omvatten host, Windows x86 (32-bits), Windows ARM64, Linux AMD64/ARM64 en Raspberry Pi ARM64/ARMv7. Windows x86 vereist Windows 10 of later en een processor met SSE2; Windows XP wordt niet ondersteund. Linux RISC-V 64 is experimenteel en alleen voor console. `android-arm64` is gereserveerd maar nog geen werkende native backend. Het doel moet alle gebruikte mogelijkheden ondersteunen. Grafische exports tonen één seconde een gelokaliseerd Pli-startscherm. `--splash assets/intro.png` voegt een optioneel verpakt PNG/JPEG-startbeeld toe; `--splash-duration 2s` kiest daarvoor 0,5 tot en met 10 seconden. `--splash-locale en|nl` kiest de taal van het Pli-beeld. Programma en timers beginnen na de startschermen. De [IDE](../begrippen/ontwikkelomgeving.md) onthoudt geaccepteerde bouwinstellingen per opgeslagen bronbestand/project. `--compress upx` comprimeert het uitvoerbare bestand en rapporteert bespaarde bytes. Standaard is `--compress none`. Windows Build Tools bevat UPX; de geëxporteerde applicatie heeft geen UPX-installatie nodig. Windows-exports krijgen bestandseigenschappen in zowel console- als venstermodus. `--window-title "Laserdoolhof"` kiest de applicatietitel. De **Bestandsbeschrijving / File description** is altijd ` created with Pliro Creator Pro`, dus bijvoorbeeld `Laserdoolhof created with Pliro Creator Pro`. Deze vaste vermelding blijft Engels en wordt automatisch uit de uiteindelijke titel opgebouwd. Het veld is alleen-lezen. De oude vlag `--file-description` wordt geaccepteerd maar genegeerd. Productnaam volgt standaard de titel; bedrijf en copyright zijn standaard leeg. Eigen copyrighttekst blijft behouden zonder toegevoegde Pliro-vermelding; bestaande opgeslagen copyrighttekst blijft bewerkbaar. Bestands- en productversie zijn standaard `1.0.0.0`. Eén tot vier decimale componenten van 0 tot en met 65535 zijn toegestaan en worden tot vier aangevuld. Gebruik `--product-name`, `--company-name`, `--copyright`, `--file-version` en `--product-version`. Windows `--icon` accepteert PNG of ICO. ```shell pliro build --window-title "Laserdoolhof" --product-name "Mijn spellen" --file-version 1.2 --copyright "Copyright 2026 Spelclub." -o doolhof.exe examples/nl/laser-maze-3d.pliro ``` Titel en metadata zijn exportinstellingen, geen Pliro-syntaxis. Zie de [native-bouwspecificatie](../../../docs/spec/native-build.md) voor alle opties. Gegenereerde applicaties bevatten geen Pliro-productlicentiecontrole en blijven werken onafhankelijk van de latere abonnementsstatus van de maker. ## Gerelateerde lemma’s [Syntaxis en waarden](../syntaxis/LEESMIJ.md) · [Ingebouwde functies](../ingebouwde-functies/LEESMIJ.md) · [Programmeergidsen](LEESMIJ.md)