Installing Lazarus on Windows

From Lazarus wiki
Revision as of 05:24, 17 January 2021 by Trev (talk | contribs) (Categorise page)
Windows logo - 2012.svg

This article applies to Windows only.

See also: Multiplatform Programming Guide

Using the Windows Installer

By far the easiest and most common way to install Lazarus on Windows is to go to the official Lazarus SourceForge download site select an appropriate combined FPC/Lazarus installation package, download the latest release and launch the installer.

The current releases of the Windows Lazarus installer packages install very easily, and should work 'out-of-the-box'.

Upgrading can be as simple as downloading the new installer and running it. You will be taken through a typical Windows installation wizard to install the FPC compiler and FPC source within the same directory structure as Lazarus IDE, and Lazarus should launch and operate without significant problems, provided you have uninstalled any previous version of Lazarus and/or FPC which was not installed with a recent version fo the Windows installer (older installations can often be found in the C:\pp directory).

You can also use a Lazarus Snapshot. For download locations see Lazarus Snapshots Downloads.

Tip: It's perhaps a good idea to reboot your Windows system after you have installed Lazarus and before you try to install additional Lazarus components such as zeoslib for example.

Installing Lazarus on a Portable USB Drive

It is even possible to install the whole Lazarus/FPC package on a portable USB drive (capacity at least 256 MB), for use in environments where you are not allowed to install software on your Windows workstation or where you haven't got administrator privileges. You do have to be a little careful about adjusting the paths in the compiler and environment options and the fpc.cfg file. It may also be necessary to keep the directory for test compilation on your portable drive.


A: This is what I do. It's relatively convoluted, but it's the best solution I've found. I have a "bin" directory on my USB drive, where I have several scripts and utilities installed. Inside that directory is a batch file called "setenv.bat" which sets an environment variable called THUMBDRIVE. It is set by using this command in the batch file:

set THUMBDRIVE=%CD:~0,2%

This is used in setenv.bat to set some paths to other things I have installed on the USB drive. I also have a link in the root directory of the thumb drive with this property:

%SystemRoot%\system32\cmd.exe /k bin\setenv

so that when I click on that link when the thumb drive folder is displayed after inserting it, it will open a command prompt at the thumb drive with the environment variables set from setenv.bat.

Also inside the bin directory is sed (the actual binary is one I obtained from the mingw distribution). So I created another batch file called fixlaz.bat which takes one argument, the drive letter which is currently in the Lazarus/FPC settings files that you want to change (note that this is the previous drive letter the last time you ran fixlaz.bat, not the current one of your USB drive which fixlaz.bat already knows). You will need to create this batch file to fit where you installed Lazarus in the root directory structure of the drive if you didn't install it directly in the root folder, and then repeat these lines also for the editoroptions.xml and fpc.cfg files (fpc.cfg is in the fpc bin directory, which might be buried deep in the lazarus folder):

copy %THUMBDRIVE%\lazarus\environmentoptions.xml %THUMBDRIVE%\lazarus\environmentoptions.bak
sed -e 's/%1/%THUMBDRIVE%/g' %THUMBDRIVE%\lazarus\environmentoptions.bak > %THUMBDRIVE%\lazarus\environmentoptions.xml

So to use it, I would type at the command prompt of the USB drive:

fixlaz G:

if "G:" was the previous drive letter used the last time I ran it. This will then scan the file(s) and replace "G:" with the current drive letter of the USB drive, which is in the %THUMBDRIVE% environment variable (after running setenv.bat). Note that you could write it to save the current drive letter in a separate file, so that you wouldn't have to remember it yourself the next time. But this works well enough for me right now.

From source on Windows using svn on the command line

Please note these instructions are for SubVersion, but there is also a Git mirror repository of Free Pascal Compiler and Lazarus. See Git mirror for details. You can also use git directly with SubVersion server using git-svn link. See Lazarus git-svn for details.

Open a command prompt window. Start->Run...>CMD or choose the MS-DOS icon. You will use this window to enter the commands below.

You have to download the Lazarus source from one of the snapshot servers. Then unzip it to c:\lazarus for example [below called $(LazarusDir)].

Or you can use SVN (example for text mode SVN):

mkdir c:\lazarus
cd /d c:\lazarus
svn checkout c:\lazarus

You have to install at least the latest stable FPC version (eg FPC 3.2.0 as at Jan 2021).

Type (replace "YourLazarusDir" with the path you have unzipped/checked out Lazarus; replace:

cd "YourLazarusDir"
rem Of course change the first path variable to
rem the path of your FPC compiler
set path=c:\freepascal\bin\x86_64-win64;%PATH%
  • Windows 98 and Windows ME need a special flag to compile. You need to use make OPT="-dWIN9XPLATFORM" otherwise the lazarus.exe will not be able to run on these operating systems.

If you have followed this successfully, you can now type: lazarus.exe which should start the Lazarus IDE.

You can also compile the examples:

cd "YourLazarusDir"\examples

From source on Windows using the GUI Tortoise SVN

1> First of all install the latest stable Lazarus to obtain a good starting FPC, for example in C:\lazarus_2_0_10.

2> Now use TortoiseSVN to checkout into c:\lazarus

3> Make the following C:\lazarus\build.bat batch file:

Replace $(LazarusDir) with your Lazarus directory and make sure the FPC version number matches

SET PATH=$(LazarusDir)\fpc\3.2.0\bin\i386-win32\
make bigide

Now create a shortcut on your desktop to start Lazarus and put the following command to start Lazarus which will make sure that it separates the config files from the stable and the SVN versions:

$(LazarusDir)\startlazarus.exe --pcp=$(LazarusDir)\configdir

Always start Lazarus from this shortcut, never directly from the executable. The first time you start Lazarus configure your FPC dir, FPC source directory and Lazarus directory.

Building Lazarus on Win98 and WinME

Because the Lazarus IDE by default links to a dll-call "CreateToolhelp32Snapshot", which does not exist on the Win9x platform, the IDE will not run on Win9x out of the box. In order to make it run you have to rebuild the IDE with make -dWIN9XPLATFORM bigide.

What does the bigide make argument do?

The bigide make argument adds a bunch of packages to Lazarus that many find useful and cannot do without. The packages that are added are:

  • cairocanvas
  • chmhelp
  • datetimectrls
  • externhelp
  • fpcunit
  • fpdebug
  • instantfpc
  • jcf2
  • lazcontrols
  • lazdebuggers
  • lclextensions
  • leakview
  • macroscript
  • memds
  • onlinepackagemanager
  • pas2js
  • PascalScript
  • printers
  • projecttemplates
  • rtticontrols
  • sdf
  • sqldb
  • synedit
  • tachart
  • tdbf
  • todolist
  • turbopower_ipro
  • virtualtreeview

The above list is sourced from the [Lazarus source directory]/IDE/Makefile.fpc and may be subject to change.

Note that if you have not compiled your own Lazarus IDE with the bigide argument, you can install any of these packages yourself using the Lazarus IDE Package > Install/Uninstall Packages... dialog.

Multiple Lazarus installs

Please see Multiple Lazarus for details on having more than one Lazarus version installed on one system. We cover issues that can arise due to multiple Lazarus installs here, because they can also happen when installing over a previous version.


Troubleshooting details that should (hopefully) be applicable across platforms may be found in the article Installation Troubleshooting.

Lazarus FAQ

The Lazarus FAQ - Frequently Asked Questions - page is available here.

Installing old versions

See Installation hints for old versions

See also