Skip to content

Instantly share code, notes, and snippets.

@ngleb
Last active November 2, 2021 02:41
Show Gist options
  • Save ngleb/944346a67960776371aab74149edf38c to your computer and use it in GitHub Desktop.
Save ngleb/944346a67960776371aab74149edf38c to your computer and use it in GitHub Desktop.
How to build ledger under Windows using MSYS2/MinGW

Install MSYS2

Manual is on the home page http://www.msys2.org/

Run MINGW32 (32 bit environment) and update it

pacman --needed -Syu

Install dependencies

Update everything, install toolchain and dependencies (probably something is missing):

pacman --needed -S base-devel git \
                   mingw-w64-i686-toolchain \
                   mingw-w64-i686-cmake \
                   mingw-w64-i686-boost \
                   mingw-w64-i686-mpfr

Clone ledger tree

Git clone ledger tree (master branch):

git clone https://github.com/ledger/ledger.git ledger

Build ledger

cd ledger
cmake -G 'MSYS Makefiles'
make

If everything went well, ledger.exe will appear in the same dir. It can be checked by running it:

./ledger

Copy ledger

Now ledger and its dependencies can be copied to somewhere for using it outside of MSYS2 environment, for example, /c/ledger. ledger then can be used as a normal Windows application, from CMD or from GNU Emacs with ledger-mode (path expantion will work properly). In this case it's useful to add C:\ledger to PATH environment variable.

mkdir /c/ledger
cp ./ledger.exe /c/ledger
cp ./libledger.dll /c/ledger
cp /mingw32/bin/libboost_filesystem-mt.dll /c/ledger
cp /mingw32/bin/libboost_regex-mt.dll /c/ledger
cp /mingw32/bin/libboost_system-mt.dll /c/ledger
cp /mingw32/bin/libgcc_s_dw2-1.dll /c/ledger
cp /mingw32/bin/libgmp-10.dll /c/ledger
cp /mingw32/bin/libicudt64.dll /c/ledger
cp /mingw32/bin/libicuuc64.dll /c/ledger
cp /mingw32/bin/libstdc++-6.dll /c/ledger
cp /mingw32/bin/libwinpthread-1.dll /c/ledger

Some packages may be updated at some point, so the name of files might change as well (e.g. icu libs will have 59 instead of 58).

@mundifex
Copy link

mundifex commented Nov 2, 2021

Thank you so much for this! The binaries available at https://github.com/FullofQuarks/Windows-Ledger-Binaries/ were segfaulting for me when sorting balance reports. Built my own binaries according to your instructions and am encountering no errors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment