2015-10-16 7 views
2

Cross скомпилированные qt5 для Windows, в MXE на Ubuntu 15.04:кросс-компиляции KDSoap с помощью MXE

make qt5 

Затем клонированный репозиторий KDSoap и попытался кросс-скомпилировать:

cmake -DCMAKE_TOOLCHAIN_FILE=/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/share/cmake/mxe-conf.cmake /data/hd1/repositories/KDSoap 

А потом есть компоновщик проблемы после 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 `[email protected]' 
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qeventdispatcher_win.o):qeventdispatcher_win.cpp:(.text+0x1d85): undefined reference to `[email protected]' 
... 
/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 `[email protected]' 
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qnativesocketengine_win.o):qnativesocketengine_win.cpp:(.text+0x211): undefined reference to `[email protected]' 
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qnativesocketengine_win.o):qnativesocketengine_win.cpp:(.text+0x2cf): undefined reference to `[email protected]' 
/data/hd1/repositories/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Network.a(qnativesocketengine_win.o):qnativesocketengine_win.cpp:(.text+0x370): undefined reference to `[email protected]' 
... 
/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' 

это из pcre, crypto, openssl, zlib и еще что-то.

Я попытался добавить -lpcre в команду компоновщика CMakeFiles/kdsoap.dir/linklibs.rsp. И снова запустить ссылку вручную (в src/KDSoapClient, например):

/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 

pcre Но ошибки о связанных ссылка не ушли.

Что можно сделать, чтобы исследовать больше? Или существует другая процедура для кросс-компиляции кода на основе Qt?

ответ

0

Просто попробуйте добавить -lpcre16 в команду компоновщика.

0

Он работал для меня в CMakeLists.txt:

target_link_libraries(worker iphlpapi ssl crypto crypt32)