monero_c docs Help

Building

Building monero_c comes down to these simple steps:

$ git clone https://github.com/mrcyjanek/monero_c --recursive $ ./apply_patches.sh monero # patch the libraries $ ./build_single x86_64-linux-gnu -j$(nproc)

To get detailed information about building please select your host platform (the one that you will use to build the monero wallet)

Supported systems

Target

Builder

Notes

Windows

Linux, Docker, WSL2

msys2 builds are not supported, there are hardcoded DLL paths in build_single.sh

macOS

Native, Linux, Docker, WSL2

Native builds are being widely used, but are not endorsed by me personally.

iOS

macOS

Android

Linux, Docker, WSL2

Linux

Native, Docker, WSL2

Linux/SailfishOS

Native, Docker

Required meego toolchain.

All supported systems are built on CI, so for the most up-to-date list of all supported systems, together with proper dependencies please take a look at full_check.yml file.

Linux

Linux builds should be built on as old of a distro as possible - targeting debian:oldoldstable, main reason for that is GLIBC compatibility (or lack of it). For some reason software compiled with newer GLIBC won't work on devices with older GLIBC, so the solution is to simply build on the oldest possible os (or abandon GLIBC and use musl).

  • x86-64-linux-gnu

  • i686-linux-gnu - deprecated by monero

  • aarch64-linux-gnu

More details

SailfishOS

Fully supported (except for armv7l devices).

  • i686-meego-linux-gnu

  • aarch64-meego-linux-gnu

More details: TBD

Alpine Linux

Requires dependency removed by upstream - it is preserved in external/alpine/libexecinfo. It could easily be brought back - but since nobody uses it and nobody complained about it missing it kind of never landed in monero_c after rewrite fully. That being said it should mostly work.

  • x86_64-alpine-linux-musl

  • aarch64-alpine-linux-musl

More details: TBD

Android

Includes bumped NDK version

  • x86_64-linux-android

  • i686-linux-android - unsupported, fails to build

  • aarch64-linux-android

  • armv7a-linux-androideabi

More details

Windows

Msys2 shell is not supported, docker or WSL2 is requried to build

  • i686-w64-mingw32 - deprecated by monero

  • x86_64-w64-mingw32

  • aarch64-w64-unknown - unsupported. Though - if somebody can grab and send me a decent CopilotPC I'll be happy to work on that. As for now using x86_64 build should be fine (but slower in runtime) solution.

More details

macOS

  • x86_64-apple-darwin11

  • aarch64-apple-darwin11

  • host-apple-darwin

  • x86_64-host-apple-darwin - alias for host-apple-darwin

  • aarch64-host-apple-darwin alias for host-apple-darwin

More details

iOS

  • host-apple-ios - probably will be renamed to aarch64-apple-ios

Last modified: 17 October 2024