1

Is it possible to cross compile the monero source on a x86-64 machine targeting an ARMv7 device?

I tried this command: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

But I ended up with x86-64 binaries:

$ file monero-wallet-cli
monero-wallet-cli: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=...

Also, how does the dev team build the monero binaries for the ARM architecture?

1

The Makefile is actually just a wrapper around CMake. If you look inside, it has various ARM targets like:

release-static-linux-armv7
release-static-linux-armv8
release-static-android-armv7
...

So you would run something like:

make release-static-linux-armv7

To build for ARMv7 Linux.

There is also a section in the README on cross-compiling using the depends build system:

make depends target=arm-linux-gnueabihf for armv7 binaries. Requires: g++-arm-linux-gnueabihf

  • I used the make depends target=arm-linux-gnueabihf command and had a few dependencies missing (autoconf automake...) which I resolved, then following error occurred: -- Looking for libunbound -- Found libunbound include (unbound.h) in /usr/include CMake Error at CMakeLists.txt:59 (message): Found libunbound includes, but could not find libunbound library. Please make sure you have installed libunbound or libunbound-dev or the equivalent Call Stack (most recent call first): external/CMakeLists.txt:77 (die) Although I do have libunbound-dev installed – thowaway2957 Apr 11 at 17:40
  • If you are following instructions in the README, and they are not working, raise a ticket in GitHub issues. – jtgrassie Apr 11 at 20:47
  • The answer is correct, but I couldn't build with BACKCOMPAT enabled. I created an issue – thowaway2957 Apr 12 at 16:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.