Skip to content

Ledger failed to build under Msys2 MinGW 64-bit runtime #1905

@ngleb

Description

@ngleb

I tried building ledger on Windows using Msys2 MinGW 64 bit runtime, and it failed with the following error:

[ 40%] Building CXX object src/CMakeFiles/libledger.dir/account.cc.obj
C:/ledger/ledger/src/account.cc: In function 'ledger::value_t ledger::{anonymous}::get_addr(ledger::account_t&)':
C:/ledger/ledger/src/account.cc:309:12: error: cast from 'ledger::account_t*' to 'long int' loses precision [-fpermissive]
  309 |     return long(&account);
      |            ^~~~~~~~~~~~~~
C:/ledger/ledger/src/account.cc: In function 'void ledger::put_account(boost::property_tree::ptree&, const ledger::account_t&, boost::function<bool(const ledger::account_t&)>)':
C:/ledger/ledger/src/account.cc:773:24: error: cast from 'const ledger::account_t*' to 'long unsigned int' loses precision [-fpermissive]
  773 |     buf << std::hex << reinterpret_cast<unsigned long>(&acct);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/CMakeFiles/libledger.dir/build.make:395: src/CMakeFiles/libledger.dir/account.cc.obj] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:270: src/CMakeFiles/libledger.dir/all] Error 2
make: *** [Makefile:183: all] Error 2

Build with Msys MinGW 32 bit works fine. Is this actually supported or is it expected behaviour?

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildBuild problems

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions