[HowTo] Cross Compiling with mxe | Issues on compiling coins

in #howto6 years ago (edited)

Hey ho folks,

Today i push some last infos about compiling coins with mxe.

With the actual version of mxe you ran into BigNum Conversion errors, when compiling coins. Thats because of the OpenSSL1.1 library. So what shall we do? Very easy, we change it in the src for in the mxe folder.

cd /mnt/mxe/src

(nano or) gedit openssl.mk

If you want you can download the OpenSSL-1.0.2o your self or only change it and let the makefile download it. So change the following lines:

$(PKG)_VERSION  := 1.1.0h

$(PKG)_CHECKSUM := 5835626cde9e99656585fc7aaa2302a73a7e1340bf8c14fd635a62c66802a517

To:

$(PKG)_VERSION  := 1.0.2o

$(PKG)_CHECKSUM := ec3f5c9714ba0fd45cb4e087301eb1336c317e0d20b575a125050470e8089e4d

That's all. Now you have to build it new, head to the previous dir and write:

cd ..

make build-only-openssl_i686-w63-mingw32.static

and wait until it is done.

Further issues

If you ran into linking issues with the libQT5Network.a you have to build QT5 without -openssl-linked parameter. So change your OpenSSL Version back to OpenSSL-1.1.0h and rebuild QT5 with the following change in the qtbase.mk

./configure \

            -opensource \

            -confirm-license \

            -xplatform win32-g++ \

            -device-option CROSS_COMPILE=${TARGET}- \

            -device-option PKG_CONFIG='${TARGET}-pkg-config' \

            -pkg-config \

            -force-pkg-config \

            -no-use-gold-linker \

            -release \

            -static \

            -prefix '$(PREFIX)/$(TARGET)/qt5' \

            -no-icu \

            -opengl desktop \

            -no-glib \

            -accessibility \

            -nomake examples \

            -nomake tests \

            -plugin-sql-mysql \

            -mysql_config $(PREFIX)/$(TARGET)/bin/mysql_config \

            -plugin-sql-sqlite \

            -plugin-sql-odbc \

            -plugin-sql-psql \

            -plugin-sql-tds -D Q_USE_SYBASE \

            -system-zlib \

            -system-libpng \

            -system-libjpeg \

            -system-sqlite \

            -fontconfig \

            -system-freetype \

            -system-harfbuzz \

            -system-pcre \

            -dbus-linked \

     ->     -openssl-linked \   <- delete

            -no-pch \

            -v \

            $($(PKG)_CONFIGURE_OPTS)

Delete the line with the option -openssl-linked and rebuild. If you ran into errors while the compilation process. Delete your mxe folder and check it out completely new and make the change in th qtbase.mk before you install QT5. After you are done with it install the older OpenSSL version as described above.

Ok guys, thats all for today. Please contact me via the Arenon Discord channel if you got any other issues.

So happy coding and have a nice day

Sort:  

You have a minor misspelling in the following sentence:

Delete your mxe folder and check it out completly new and make the change in th qtbase.
It should be completely instead of completly.

Thanks =D

i found an error:
make build-only-openssl_i686-w63-mingw32.static
should be:
make build-only-openssl_i686-w64-mingw32.static