• 3720阅读
  • 0回复

qt5.10交叉编译到aarch64平台,make时报错 [复制链接]

上一主题 下一主题
离线qianpeicong
 

只看楼主 倒序阅读 楼主  发表于: 2019-01-31
configure通过,但是make时报错未定义的引用,
以下是我的autoconfigure.sh
  1. #!/bin/sh  
  2. ./configure -prefix /home/msi/arm/qt5100_64/qt_sdk \
  3. -v \
  4. -opensource \
  5. -release \
  6. -confirm-license \
  7. -xplatform linux-arm-gnueabi-g++ \
  8. -shared \
  9. -qt-zlib \
  10. -qt-libjpeg \
  11. -qt-libpng \
  12. -make libs \
  13. -no-cups \
  14. -no-iconv \
  15. -no-pch \
  16. -no-opengl \
  17. -opengl es2 \
  18. -no-openssl \
  19. -no-use-gold-linker \
  20. -nomake examples \
  21. -I /home/msi/pi/rootfs/usr/include \
  22. -L /home/msi/pi/rootfs/usr/lib \
  23. -sysroot /home/msi/pi/rootfs

qmake.conf:
  1. #
  2. # qmake configuration for building with arm-linux-gnueabi-g++
  3. #
  4. MAKEFILE_GENERATOR      = UNIX
  5. CONFIG                 += incremental
  6. QMAKE_INCREMENTAL_STYLE = sublib
  7. QMAKE_INCDIR_POST += \
  8.     $[QT_SYSROOT]/usr/include \
  9.     $[QT_SYSROOT]/usr/include/aarch64-linux-gnu
  10. QMAKE_LIBDIR_POST += \
  11.     $[QT_SYSROOT]/usr/lib \
  12.     $[QT_SYSROOT]/lib/aarch64-linux-gnu \
  13.     $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu
  14. QMAKE_RPATHLINKDIR_POST += \
  15.     $[QT_SYSROOT]/usr/lib \
  16.     $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu \
  17.     $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu/tegra \
  18.     $[QT_SYSROOT]/lib/aarch64-linux-gnu
  19.     
  20. QMAKE_INCDIR_OPENGL[_ES2] += \
  21.     $[QT_SYSROOT]/include \
  22.     $[QT_SYSROOT]/include/EGL \
  23.     $[QT_SYSROOT]/include/GLES2 \
  24.     $[QT_SYSROOT]/include/GLES3 \
  25.     $[QT_SYSROOT]/include/KHR \
  26.     $[QT_SYSROOT]/usr/include \
  27.     $[QT_SYSROOT]/usr/include/EGL \
  28.     $[QT_SYSROOT]/usr/include/GLES2 \
  29.     $[QT_SYSROOT]/usr/include/GLES3 \
  30.     $[QT_SYSROOT]/usr/include/KHR
  31. QMAKE_LIBDIR_OPENGL[_ES2] += \
  32.     $[QT_SYSROOT]/lib/aarch64-linux-gnu/mesa-egl \
  33.     $[QT_SYSROOT]/lib/aarch64-linux-gnu/tegra-egl \
  34.     $[QT_SYSROOT]/lib/aarch64-linux-gnu   \
  35.     $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu/mesa-egl \
  36.     $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu/tegra-egl \
  37.     $[QT_SYSROOT]/usr/lib/aarch64-linux-gnu
  38. QMAKE_LIBS_OPENGL[_ES2] += -lEGL -lGLESv2
  39. include(../common/linux.conf)
  40. include(../common/gcc-base-unix.conf)
  41. include(../common/g++-unix.conf)
  42. # modifications to g++.conf
  43. QMAKE_CC                = aarch64-linux-gnu-gcc
  44. QMAKE_CXX               = aarch64-linux-gnu-g++
  45. QMAKE_LINK              = aarch64-linux-gnu-g++
  46. QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++
  47. # modifications to linux.conf
  48. QMAKE_AR                = aarch64-linux-gnu-ar cqs
  49. QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy
  50. QMAKE_NM                = aarch64-linux-gnu-nm -P
  51. QMAKE_STRIP             = aarch64-linux-gnu-strip
  52. load(qt_config)
make时候报错如下:
  1. qhttpnetworkreply.cpp:(.text+0xbc8):对‘z_inflateEnd’未定义的引用
  2. .obj/qhttpnetworkreply.o:在函数‘QHttpNetworkReplyPrivate::initializeInflateStream()’中:
  3. qhttpnetworkreply.cpp:(.text+0x1058):对‘z_inflateInit2_’未定义的引用
  4. .obj/qhttpnetworkreply.o:在函数‘QHttpNetworkReplyPrivate::clearHttpLayerInformation()’中:
  5. qhttpnetworkreply.cpp:(.text+0x18bc):对‘z_inflateEnd’未定义的引用
  6. .obj/qhttpnetworkreply.o:在函数‘QHttpNetworkReplyPrivate::uncompressBodyData(QByteDataBuffer*, QByteDataBuffer*)’中:
  7. qhttpnetworkreply.cpp:(.text+0x33fc):对‘z_inflate’未定义的引用
  8. qhttpnetworkreply.cpp:(.text+0x3418):对‘z_inflateEnd’未定义的引用
  9. qhttpnetworkreply.cpp:(.text+0x3440):对‘z_inflateInit2_’未定义的引用
  10. .obj/qnetworkcookie.o:在函数‘QNetworkCookiePrivate::parseSetCookieHeaderLine(QByteArray const&)’中:
  11. qnetworkcookie.cpp:(.text+0x2e6c):对‘QDateTime::QDateTime(QDateTime&&)’未定义的引用
  12. qnetworkcookie.cpp:(.text+0x34ac):对‘QDateTime::fromSecsSinceEpoch(long long, Qt::TimeSpec, int)’未定义的引用
  13. .obj/qnetworkreply.o:(.data.rel.ro._ZTV20QNetworkReplyPrivate[_ZTV20QNetworkReplyPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用
  14. .obj/qnetworkreplyimpl.o:(.data.rel.ro._ZTV24QNetworkReplyImplPrivate[_ZTV24QNetworkReplyImplPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用
  15. .obj/qnetworkreplydataimpl.o:(.data.rel.ro._ZTV28QNetworkReplyDataImplPrivate[_ZTV28QNetworkReplyDataImplPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用
  16. .obj/qnetworkreplyhttpimpl.o:在函数‘QNetworkReplyHttpImplPrivate::loadFromCacheIfAllowed(QHttpNetworkRequest&)’中:
  17. qnetworkreplyhttpimpl.cpp:(.text+0x5dd0):对‘QDateTime::toSecsSinceEpoch() const’未定义的引用
  18. qnetworkreplyhttpimpl.cpp:(.text+0x5ddc):对‘QDateTime::toSecsSinceEpoch() const’未定义的引用
  19. .obj/qnetworkreplyhttpimpl.o:(.data.rel.ro._ZTV28QNetworkReplyHttpImplPrivate[_ZTV28QNetworkReplyHttpImplPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用
  20. .obj/qnetworkreplyfileimpl.o:(.data.rel.ro._ZTV28QNetworkReplyFileImplPrivate[_ZTV28QNetworkReplyFileImplPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用
  21. .obj/qhttpmultipart.o:在函数‘QHttpMultiPartPrivate::QHttpMultiPartPrivate()’中:
  22. qhttpmultipart.cpp:(.text+0x424):对‘QRandomGenerator64::global()’未定义的引用
  23. qhttpmultipart.cpp:(.text+0x430):对‘QRandomGenerator::_fillRange(void*, void*)’未定义的引用
  24. .obj/qnetworkdiskcache.o:在函数‘QNetworkDiskCache::expire()’中:
  25. qnetworkdiskcache.cpp:(.text+0x22a8):对‘QFileInfo::fileTime(QFileDevice::FileTime) const’未定义的引用
  26. qnetworkdiskcache.cpp:(.text+0x2424):对‘QFileInfo::fileTime(QFileDevice::FileTime) const’未定义的引用
  27. .obj/qnetworkdiskcache.o:在函数‘QNetworkDiskCachePrivate::storeItem(QCacheItem*)’中:
  28. qnetworkdiskcache.cpp:(.text+0x39b8):对‘QTemporaryFile::rename(QString const&)’未定义的引用
  29. .obj/qauthenticator.o:在函数‘QAuthenticatorPrivate::QAuthenticatorPrivate()’中:
  30. qauthenticator.cpp:(.text+0x5a0):对‘QRandomGenerator64::system()’未定义的引用
  31. qauthenticator.cpp:(.text+0x5ac):对‘QRandomGenerator::_fillRange(void*, void*)’未定义的引用
  32. .obj/qauthenticator.o:在函数‘QAuthenticatorPrivate::calculateResponse(QByteArray const&, QByteArray const&)’中:
  33. qauthenticator.cpp:(.text+0x6004):对‘QDateTime::currentSecsSinceEpoch()’未定义的引用
  34. .obj/qdnslookup.o:在函数‘QDnsLookupRunnable::run()’中:
  35. qdnslookup.cpp:(.text+0x270c):对‘QRandomGenerator64::global()’未定义的引用
  36. qdnslookup.cpp:(.text+0x2724):对‘QRandomGenerator::_fillRange(void*, void*)’未定义的引用
  37. qdnslookup.cpp:(.text+0x2a5c):对‘QRandomGenerator64::global()’未定义的引用
  38. qdnslookup.cpp:(.text+0x2a70):对‘QRandomGenerator::_fillRange(void*, void*)’未定义的引用
  39. .obj/qabstractsocket.o:在函数‘QAbstractSocketPrivate::flush()’中:
  40. qabstractsocket.cpp:(.text+0xa0):对‘QIODevicePrivate::allWriteBuffersEmpty() const’未定义的引用
  41. .obj/qabstractsocket.o:在函数‘QAbstractSocket::disconnectFromHost()’中:
  42. qabstractsocket.cpp:(.text+0xa4c):对‘QIODevicePrivate::allWriteBuffersEmpty() const’未定义的引用
  43. .obj/qabstractsocket.o:(.data.rel.ro._ZTV22QAbstractSocketPrivate[_ZTV22QAbstractSocketPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用
  44. .obj/qtcpsocket.o:(.data.rel.ro._ZTV17QTcpSocketPrivate[_ZTV17QTcpSocketPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用
  45. .obj/qudpsocket.o:(.data.rel.ro._ZTV17QUdpSocketPrivate[_ZTV17QUdpSocketPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用
  46. .obj/qlocalsocket_unix.o:(.data.rel.ro._ZTV19QLocalSocketPrivate[_ZTV19QLocalSocketPrivate]+0x38):对‘QIODevicePrivate::skip(long long)’未定义的引用
  47. collect2: error: ld returned 1 exit status
  48. Makefile:508: recipe for target '../../lib/libQt5Network.so.5.10.1' failed
  49. make[3]: *** [../../lib/libQt5Network.so.5.10.1] Error 1
  50. make[3]: Leaving directory '/home/msi/qt-everywhere-src-5.10.1/qtbase/src/network'
  51. Makefile:276: recipe for target 'sub-network-make_first' failed
  52. make[2]: *** [sub-network-make_first] Error 2
  53. make[2]: Leaving directory '/home/msi/qt-everywhere-src-5.10.1/qtbase/src'
  54. Makefile:48: recipe for target 'sub-src-make_first' failed
  55. make[1]: *** [sub-src-make_first] Error 2
  56. make[1]: Leaving directory '/home/msi/qt-everywhere-src-5.10.1/qtbase'
  57. Makefile:83: recipe for target 'module-qtbase-make_first' failed
  58. make: *** [module-qtbase-make_first] Error 2
还请各位大佬指点迷津。




快速回复
限100 字节
 
上一个 下一个