Cross-compiled qt5 for Windows in MXE on Ubuntu 15.04:
make qt5
Then cloned the KDSoap repository and tried to cross-compile it:
cmake -DCMAKE_TOOLCHAIN_FILE=/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/share/cmake/mxe-conf.cmake /data/hd1/repositories/KDSoap
And then there are linker problems after make
:
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:(.text+0x317): undefined reference to `pcre16_exec'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:(.text+0x38f): undefined reference to `pcre16_jit_stack_alloc'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:(.text+0x3fc): undefined reference to `pcre16_exec'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:(.text+0x72e): undefined reference to `pcre16_free'
...
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qbytearray.o):qbytearray.cpp:(.text+0x619): undefined reference to `uncompress'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qbytearray.o):qbytearray.cpp:(.text+0x127e): undefined reference to `compress2'
...
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qeventdispatcher_win.o):qeventdispatcher_win.cpp:(.text+0xa9b): undefined reference to `_imp__WSAAsyncSelect@16'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qeventdispatcher_win.o):qeventdispatcher_win.cpp:(.text+0x1d85): undefined reference to `_imp__WSAAsyncSelect@16'
...
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x1): undefined reference to `ASN1_INTEGER_get'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x11): undefined reference to `ASN1_STRING_data'
...
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x41): undefined reference to `BIO_ctrl'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x51): undefined reference to `BIO_free'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x61): undefined reference to `BIO_new'
...
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0xe1): undefined reference to `CRYPTO_num_locks'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0xf1): undefined reference to `CRYPTO_set_locking_callback'
...
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x151): undefined reference to `ERR_error_string'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x161): undefined reference to `ERR_get_error'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x171): undefined reference to `ERR_free_strings'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x181): undefined reference to `EVP_des_ede3_cbc'
...
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x411): undefined reference to `SSL_accept'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x421): undefined reference to `SSL_clear'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x431): undefined reference to `SSL_CIPHER_description'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qsslsocket_openssl_symbols.o):qsslsocket_openssl_symbols.cpp:(.text+0x441): undefined reference to `SSL_CIPHER_get_bits'
...
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qnativesocketengine_win.o):qnativesocketengine_win.cpp:(.text+0x1ef): undefined reference to `_imp__WSAHtons@12'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qnativesocketengine_win.o):qnativesocketengine_win.cpp:(.text+0x211): undefined reference to `_imp__WSAHtonl@12'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qnativesocketengine_win.o):qnativesocketengine_win.cpp:(.text+0x2cf): undefined reference to `_imp__WSAHtons@12'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qnativesocketengine_win.o):qnativesocketengine_win.cpp:(.text+0x370): undefined reference to `_imp__WSAStartup@8'
...
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qspdyprotocolhandler.o):qspdyprotocolhandler.cpp:(.text+0x369): undefined reference to `inflateInit_'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qspdyprotocolhandler.o):qspdyprotocolhandler.cpp:(.text+0x39e): undefined reference to `deflateInit_'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qspdyprotocolhandler.o):qspdyprotocolhandler.cpp:(.text+0x425): undefined reference to `inflate'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qspdyprotocolhandler.o):qspdyprotocolhandler.cpp:(.text+0x665): undefined reference to `inflateSetDictionary'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qspdyprotocolhandler.o):qspdyprotocolhandler.cpp:(.text+0xdaa): undefined reference to `deflateEnd'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qspdyprotocolhandler.o):qspdyprotocolhandler.cpp:(.text+0xdb8): undefined reference to `deflateEnd'
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qspdyprotocolhandler.o):qspdyprotocolhandler.cpp:(.text+0x1ac3): undefined reference to `deflate'
These are from pcre
, crypto
, openssl
, zlib
and something else.
I've tried to add a -lpcre
to the CMakeFiles/kdsoap.dir/linklibs.rsp
linker command. And rerun the link manually (in src/KDSoapClient
for example):
/data/hd1/repositories/mxe/usr/bin/i686-w64-mingw32.static-g++ -O3 -DNDEBUG -shared -o ../../bin/libkdsoap.dll -Wl,--out-implib,../../lib/libkdsoap.dll.a -Wl,--major-image-version,1,--minor-image-version,4 -Wl,--whole-archive CMakeFiles/kdsoap.dir/objects.a -Wl,--no-whole-archive @CMakeFiles/kdsoap.dir/linklibs.rsp
But the pcre
-related link errors aren't gone.
What can be done to investigate more? Or there is a different procedure to cross-compile Qt-based code?