[fpc-pascal] How to compile program from command line on Linux?

Bo Berglund bo.berglund at gmail.com
Mon Dec 16 15:42:37 CET 2024


On Mon, 16 Dec 2024 15:06:45 +0100, Bo Berglund via fpc-pascal
<fpc-pascal at lists.freepascal.org> wrote:

>On Mon, 16 Dec 2024 14:19:56 +0100 (CET), Michael Van Canneyt via fpc-pascal
><fpc-pascal at lists.freepascal.org> wrote:
>
>>
>>
>>On Mon, 16 Dec 2024, Bo Berglund via fpc-pascal wrote:
>>
>>> I have written a command line utility program on Linux using Lazarus as the IDE.
>>> This was done a while ago on an Ubuntu Desktop 20.04 machine, which I normally
>>> access using VNC when doing Lazarus work there.
>>>
>>> Now since a few months the TigerVNC server on that machinbe won't start anymore
>>> so I cannot reach Lazarus.
>>> But I can log on just fine using PuTTY from Windows and do whatever on the
>>> command line.
>>>
>>> So what I want to do is to modify the source, which I can do via SSH.
>>> But then I want to build a new version of the program without access to Lazarus
>>> there.
>>>
>>> Can this be done and in that case how?
>>> Last build of the application was using fpc ver 3.2.2 and probably Lazarus 2.2.4
>>>
>>> I have never compiler a FreePascal program from the command line before....
>>
>>If you have a .lpi file (lazarus project file) then you can do simply a
>>
>>lazbuild yourproject.lpi
>>
>>lazbuild is a command-line tool that comes with lazarus, it can be used to
>>compile a project file with the same settings as would be used if you were
>>compiling in the IDE.
>>
>>Michael.
>
>I have now entered the bugfix and tried to use lazbuild, but the command is not
>found...
>
>$ lazbuild videosplitcmb.lpi
>lazbuild: command not found
>
>Seems like it is not on path..
>
>My project sources are in ~/projects/VideoSplitCombine
>
>And Lazarus and lazbuild itself is in  ~/dev/lazarus/2.2.4/
>But not on path...
>
>Should I copy lazbuild to  ~/bin where fpc also is located?
>Or invoke it like this:
>
>~/dev/lazarus/2.2.4/lazbuild videosplitcmb.lpi

I tried to symlink lazbuild into $HOME/bin and then inside the project dir I
tried this:

$ lazbuild videosplitcmb.lpi
Error: (lazarus) invalid Lazarus directory "": directory lcl not found
Error: (lazarus) Building failed: videosplitcmb.lpi

I tried lazbuild --help and found out that there is an option one can enter too:

lazbuild --lazarusdir=/home/bosse/dev/lazarus/2.2.4 videosplitcmb.lpi

And this time it worked fine!
I now have the modified tool and I moved it to the Ubuntu Server where it works
just fine.

Thanks for the instruction on how to do it.


-- 
Bo Berglund
Developer in Sweden



More information about the fpc-pascal mailing list