qianpeicong |
2019-01-31 22:10 |
qt5.10交叉编译到aarch64平台,make时报错
configure通过,但是make时报错未定义的引用, 以下是我的autoconfigure.sh
- #!/bin/sh
./configure -prefix /home/msi/arm/qt5100_64/qt_sdk \ -v \ -opensource \ -release \ -confirm-license \ -xplatform linux-arm-gnueabi-g++ \ -shared \ -qt-zlib \ -qt-libjpeg \ -qt-libpng \ -make libs \ -no-cups \ -no-iconv \ -no-pch \ -no-opengl \ -opengl es2 \ -no-openssl \ -no-use-gold-linker \ -nomake examples \ -I /home/msi/pi/rootfs/usr/include \ -L /home/msi/pi/rootfs/usr/lib \ -sysroot /home/msi/pi/rootfs
qmake.conf:
- #
# qmake configuration for building with arm-linux-gnueabi-g++ #
MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_INCDIR_POST += \ $[QT_SYSROOT]/usr/include \ $[QT_SYSROOT]/usr/include/aarch64-linux-gnu QMAKE_LIBDIR_POST += \ $[QT_SYSROOT]/usr/lib \ $[QT_SYSROOT]/lib/aarch64-linux-gnu \ $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu QMAKE_RPATHLINKDIR_POST += \ $[QT_SYSROOT]/usr/lib \ $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu \ $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu/tegra \ $[QT_SYSROOT]/lib/aarch64-linux-gnu QMAKE_INCDIR_OPENGL[_ES2] += \ $[QT_SYSROOT]/include \ $[QT_SYSROOT]/include/EGL \ $[QT_SYSROOT]/include/GLES2 \ $[QT_SYSROOT]/include/GLES3 \ $[QT_SYSROOT]/include/KHR \ $[QT_SYSROOT]/usr/include \ $[QT_SYSROOT]/usr/include/EGL \ $[QT_SYSROOT]/usr/include/GLES2 \ $[QT_SYSROOT]/usr/include/GLES3 \ $[QT_SYSROOT]/usr/include/KHR QMAKE_LIBDIR_OPENGL[_ES2] += \ $[QT_SYSROOT]/lib/aarch64-linux-gnu/mesa-egl \ $[QT_SYSROOT]/lib/aarch64-linux-gnu/tegra-egl \ $[QT_SYSROOT]/lib/aarch64-linux-gnu \ $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu/mesa-egl \ $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu/tegra-egl \ $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu QMAKE_LIBS_OPENGL[_ES2] += -lEGL -lGLESv2
include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf)
# modifications to g++.conf QMAKE_CC = aarch64-linux-gnu-gcc QMAKE_CXX = aarch64-linux-gnu-g++ QMAKE_LINK = aarch64-linux-gnu-g++ QMAKE_LINK_SHLIB = aarch64-linux-gnu-g++
# modifications to linux.conf QMAKE_AR = aarch64-linux-gnu-ar cqs QMAKE_OBJCOPY = aarch64-linux-gnu-objcopy QMAKE_NM = aarch64-linux-gnu-nm -P QMAKE_STRIP = aarch64-linux-gnu-strip load(qt_config)
make时候报错如下:
- qhttpnetworkreply.cpp:(.text+0xbc8):对‘z_inflateEnd’未定义的引用
.obj/qhttpnetworkreply.o:在函数‘QHttpNetworkReplyPrivate::initializeInflateStream()’中: qhttpnetworkreply.cpp:(.text+0x1058):对‘z_inflateInit2_’未定义的引用 .obj/qhttpnetworkreply.o:在函数‘QHttpNetworkReplyPrivate::clearHttpLayerInformation()’中: qhttpnetworkreply.cpp:(.text+0x18bc):对‘z_inflateEnd’未定义的引用 .obj/qhttpnetworkreply.o:在函数‘QHttpNetworkReplyPrivate::uncompressBodyData(QByteDataBuffer*, QByteDataBuffer*)’中: qhttpnetworkreply.cpp:(.text+0x33fc):对‘z_inflate’未定义的引用 qhttpnetworkreply.cpp:(.text+0x3418):对‘z_inflateEnd’未定义的引用 qhttpnetworkreply.cpp:(.text+0x3440):对‘z_inflateInit2_’未定义的引用 .obj/qnetworkcookie.o:在函数‘QNetworkCookiePrivate::parseSetCookieHeaderLine(QByteArray const&)’中: qnetworkcookie.cpp:(.text+0x2e6c):对‘QDateTime::QDateTime(QDateTime&&)’未定义的引用 qnetworkcookie.cpp:(.text+0x34ac):对‘QDateTime::fromSecsSinceEpoch(long long, Qt::TimeSpec, int)’未定义的引用 .obj/qnetworkreply.o:(.data.rel.ro._ZTV20QNetworkReplyPrivate[_ZTV20QNetworkReplyPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用 .obj/qnetworkreplyimpl.o:(.data.rel.ro._ZTV24QNetworkReplyImplPrivate[_ZTV24QNetworkReplyImplPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用 .obj/qnetworkreplydataimpl.o:(.data.rel.ro._ZTV28QNetworkReplyDataImplPrivate[_ZTV28QNetworkReplyDataImplPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用 .obj/qnetworkreplyhttpimpl.o:在函数‘QNetworkReplyHttpImplPrivate::loadFromCacheIfAllowed(QHttpNetworkRequest&)’中: qnetworkreplyhttpimpl.cpp:(.text+0x5dd0):对‘QDateTime::toSecsSinceEpoch() const’未定义的引用 qnetworkreplyhttpimpl.cpp:(.text+0x5ddc):对‘QDateTime::toSecsSinceEpoch() const’未定义的引用 .obj/qnetworkreplyhttpimpl.o:(.data.rel.ro._ZTV28QNetworkReplyHttpImplPrivate[_ZTV28QNetworkReplyHttpImplPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用 .obj/qnetworkreplyfileimpl.o:(.data.rel.ro._ZTV28QNetworkReplyFileImplPrivate[_ZTV28QNetworkReplyFileImplPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用 .obj/qhttpmultipart.o:在函数‘QHttpMultiPartPrivate::QHttpMultiPartPrivate()’中: qhttpmultipart.cpp:(.text+0x424):对‘QRandomGenerator64::global()’未定义的引用 qhttpmultipart.cpp:(.text+0x430):对‘QRandomGenerator::_fillRange(void*, void*)’未定义的引用 .obj/qnetworkdiskcache.o:在函数‘QNetworkDiskCache::expire()’中: qnetworkdiskcache.cpp:(.text+0x22a8):对‘QFileInfo::fileTime(QFileDevice::FileTime) const’未定义的引用 qnetworkdiskcache.cpp:(.text+0x2424):对‘QFileInfo::fileTime(QFileDevice::FileTime) const’未定义的引用 .obj/qnetworkdiskcache.o:在函数‘QNetworkDiskCachePrivate::storeItem(QCacheItem*)’中: qnetworkdiskcache.cpp:(.text+0x39b8):对‘QTemporaryFile::rename(QString const&)’未定义的引用 .obj/qauthenticator.o:在函数‘QAuthenticatorPrivate::QAuthenticatorPrivate()’中: qauthenticator.cpp:(.text+0x5a0):对‘QRandomGenerator64::system()’未定义的引用 qauthenticator.cpp:(.text+0x5ac):对‘QRandomGenerator::_fillRange(void*, void*)’未定义的引用 .obj/qauthenticator.o:在函数‘QAuthenticatorPrivate::calculateResponse(QByteArray const&, QByteArray const&)’中: qauthenticator.cpp:(.text+0x6004):对‘QDateTime::currentSecsSinceEpoch()’未定义的引用 .obj/qdnslookup.o:在函数‘QDnsLookupRunnable::run()’中: qdnslookup.cpp:(.text+0x270c):对‘QRandomGenerator64::global()’未定义的引用 qdnslookup.cpp:(.text+0x2724):对‘QRandomGenerator::_fillRange(void*, void*)’未定义的引用 qdnslookup.cpp:(.text+0x2a5c):对‘QRandomGenerator64::global()’未定义的引用 qdnslookup.cpp:(.text+0x2a70):对‘QRandomGenerator::_fillRange(void*, void*)’未定义的引用 .obj/qabstractsocket.o:在函数‘QAbstractSocketPrivate::flush()’中: qabstractsocket.cpp:(.text+0xa0):对‘QIODevicePrivate::allWriteBuffersEmpty() const’未定义的引用 .obj/qabstractsocket.o:在函数‘QAbstractSocket::disconnectFromHost()’中: qabstractsocket.cpp:(.text+0xa4c):对‘QIODevicePrivate::allWriteBuffersEmpty() const’未定义的引用 .obj/qabstractsocket.o:(.data.rel.ro._ZTV22QAbstractSocketPrivate[_ZTV22QAbstractSocketPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用 .obj/qtcpsocket.o:(.data.rel.ro._ZTV17QTcpSocketPrivate[_ZTV17QTcpSocketPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用 .obj/qudpsocket.o:(.data.rel.ro._ZTV17QUdpSocketPrivate[_ZTV17QUdpSocketPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用 .obj/qlocalsocket_unix.o:(.data.rel.ro._ZTV19QLocalSocketPrivate[_ZTV19QLocalSocketPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用 collect2: error: ld returned 1 exit status Makefile:508: recipe for target '../../lib/libQt5Network.so.5.10.1' failed make[3]: *** [../../lib/libQt5Network.so.5.10.1] Error 1 make[3]: Leaving directory '/home/msi/qt-everywhere-src-5.10.1/qtbase/src/network' Makefile:276: recipe for target 'sub-network-make_first' failed make[2]: *** [sub-network-make_first] Error 2 make[2]: Leaving directory '/home/msi/qt-everywhere-src-5.10.1/qtbase/src' Makefile:48: recipe for target 'sub-src-make_first' failed make[1]: *** [sub-src-make_first] Error 2 make[1]: Leaving directory '/home/msi/qt-everywhere-src-5.10.1/qtbase' Makefile:83: recipe for target 'module-qtbase-make_first' failed make: *** [module-qtbase-make_first] Error 2
还请各位大佬指点迷津。
|
|