Mijn kennis van Lazarus is beperkt.
Heb een eenvoudig programma gemaakt en zou dit willen laten draaien op een andere Ubuntu-pc "zonder" Lazarus.
Veronderstel dat er een soort DEB (EXE) bestand moet gemaakt worden.
Is dit mogelijk en hoe?
Mijn kennis van Lazarus is beperkt.
Heb een eenvoudig programma gemaakt en zou dit willen laten draaien op een andere Ubuntu-pc "zonder" Lazarus.
Veronderstel dat er een soort DEB (EXE) bestand moet gemaakt worden.
Is dit mogelijk en hoe?
Je moet aan de compiler doorgeven dat je een binary maakt voor linux (cross compiling).
Werk je al met Ubuntu, dan is het een kwestie van tarren en compressen en met FTP/SSH/NFS overzetten. Uitpakken en opstarten maar.
Vermits je je programma compileert op Linux, gewoon de binary kopiëren nar gewenste machine.
Vereist wel dat de widgetset daar aanwezig is (GTK2 of QT), maar dat zal wel in orde zijn op de meeste distro's.
Als je "aparte" bibiliotheken (mysql o.i.d) gebruikt moeten die op de andere machine ook aanwezig zijn uiteraard.
Bart
Je moet aan de compiler doorgeven dat je een binary maakt voor linux (cross compiling).
Werk je al met Ubuntu, dan is het een kwestie van tarren en compressen en met FTP/SSH/NFS overzetten. Uitpakken en opstarten maar.
Sorry, maar deze uitleg is voormij niet te snappen!
Kan iemand mij stap voor stap uitleggen wat ik moet doen in Lazarus?
OK.
Eerst hebben we wat info nodig:
- Welke Lazarus versie
- Welke fpc versie
- Onder wel OS draai je Lazarus nu (Windows of Linux)?
- Als dat geen Linux is, heb je wel de beschikking over Linux (mag ook in een virtuele machine zijn)?
Waarschuwing vooraf: als je wilt cross-compilen (bijv. Lazarus op Windows, uitvoerbaar bestand moet draaien op Linux) dan heb je niet veel aan mij.
Bart
De gevraagde info:
Lazarus 1.0.10 -
fpc 2.6.2
Ik heb twee partities: Ubuntu 13.04 en Xubuntu 13.04.
Dus enkel LINUX en geen Windows.
Hopelijk is dit genoeg info?
Dan is het antwoord simpel.
Het volstaat (in zijn algemeenheid, zie mijn eerdere post) om de binary te kopiëren naar de gewenste machine.
Daar wel x-bit zetten (chmod +x jouwapplicatie), anders werkt het natuurlijk niet.
Als je programma's ingewikkelder worden en afhankelijkheden hebben die niet standaard (in de gewenste minimale versie) aanwezig zijn op de doelmachine, dan is het waarschijnlijk verstandiger er een .deb package van te maken.
(Maar daar heb ik dan ook totaal geen verstand van).
Als je vaak binaries naar 1 machine moet kopiëren en de bestandsgrootte van de binary (bijv. 50 binaries ?á 10 mb) is een probleem, dan zou ik zeggen installeer Lazarus op de doelmachine en kopiëer allen de sources (Menu -> Project -> Publish project).
Bart
Dan zeg ik nog steeds:Als je vaak binaries naar 1 machine moet kopiëren en de bestandsgrootte van de binary (bijv. 50 binaries ?á 10 mb) is een probleem, dan zou ik zeggen installeer Lazarus op de doelmachine en kopiëer allen de sources (Menu -> Project -> Publish project).
- Maak er een tar bestand van (tar cvf mijn project.tar <mijn binaries>)
- Compress de boel om het een stuk kleiner te maken (gzip project.tar)
- kopieer naar een andere pc (FTP).
Om dan maar lazarus te instaleren op een andere pc om zo die executable te maken, is een beetje overkill.
@seghele
Lastig als je geen ervaring hebt in Linux (voor jouw Ubuntu). Als het goed is, heb je je gecompileerde executable in een aparte folder staan. Volgens mij kan je via een filemanager van de KDE of Gnome een zip bestand maken. Dit zip bestand kan je dan via FTP of met een USBstick overzetten naar een andere pc met Linux.
Bedankt voor de uitleg.
Zal het in de loop van de week uitproberen op een andere Ubuntu pc (zonder Lazarus).
Als er nog een probleem opkomt zal ik jullie dit laten weten.
Is maar hoe je het bekijkt.
Standaard build ik al mijn projecten met debug info (-gh -gl).
Dat levert al snel binaries op van 12 MB die na compressen niet heel veel kleiner worden.
Ik test geregeld projecten op diverse PC's die niet op een eigen intern netwerk zijn aangesloten.
Als ik dat zo 10 keer doe (voor 1 PC), wat voor een beetje debuggen peanuts is, dan kan ik > 100MB over het internet jassen (?á upload 256Kbs).
FPC installeren en Lazarus via svn op die andere PC is dan (in the long run) simpeler en sneller. (En helemaal als ik mijn projectes zelf ook in eensvn repository heb staan.).
Maar goed, dit begint redelijk off-topic te worden.
Bart
Amaai, wat een uitleg! Snap er niet veel van.
Heb ondertussen een test gedaan op een Xubuntu pc zonder Lazarus erop.
Het programma opent zich niet als ik op eender welk bestandje klik.
Heb volgende bestanden:
utest1.pas
utest1.lfm
Test1lpi
Testl1pi.lpi
Testl1pi.lpr
Testl1pi.lps
Testl1pi.res
en twe mappen:
backup
lib
Welk van deze is dan een uitvoerbaar bestand?
Vreemd, ik zou verwachten dat debuginfo enorm goed compressed. (40% over, dat soort getallen)
Mogelijk dat je binary in lib/i386-linux (als je voor 32 bit compileert) staat?
Heb een volledig nieuw (klein) programma gemaakt.
Bestaande uit één "Form" met daarop twee "buttons".
Vertrekkende van de map /LSTEST.
Volgende bestanden staan erin:
unitLSTEST.pas
LSTEST (...zonder extentie)
LSTEST.ico
LSTEST.lpi
LSTEST.lpr
LSTEST.lps
LSTEST.res
In deze map staan nog twee andere:
backup
lib
In de map "lib" staan verschillende bestanden met extenties.
Dus moet het bestand zonder extentie "LSTEST" het binary zijn!
Dit bestand geeft geen reactie (op de pc zonder Lazarus) als ik er op click.
Bij mijn pc werkt het wel en gaat het programma open.
Moet er soms in de terminal een "run" of ander commando gegeven worden?
Zou graag een echt duidelijk antwoord ontvangen.
Je hebt de chmod + x gedaan volgens http://www.nldelphi.com/forum/showpo...59&postcount=7 ?
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks