您尚未登录。

楼主 # 2025-04-08 21:02:24

a_parsaeeyan
会员
注册时间: 2025-04-08
已发帖子: 2
积分: 2

undefined reference to z_inflateEnd

嗨,
我正在根据这篇文章为 Lichee Pi zero v3s 板进行编译

https://licheezero.readthedocs.io/zh/latest/%E5%BA%94%E7%94%A8/QT_doc2.html

目前cfg_arm.sh文件如下:

#!/bin/bash
set -e

QT_VERSION=5.9.1
BUILDROOT_PATH=/home/parsaeeyan/ktclicheepi/buildroot-2022.02.9
SYSROOT=$BUILDROOT_PATH/output/host/arm-buildroot-linux-gnueabihf/sysroot
TOOLCHAIN_PATH=$BUILDROOT_PATH/output/host/bin
TSLIB_ROOT=/opt/tslib
QT_INSTALL_PREFIX=/opt/qt${QT_VERSION}-arm
QT_SOURCE_DIR=~/NLC2/qt5/${QT_VERSION}

export SYSROOT
export PATH=$TOOLCHAIN_PATH:$PATH

export CFLAGS="--sysroot=$SYSROOT -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
export CXXFLAGS="$CFLAGS"
export LDFLAGS="$CFLAGS -Wl,--no-undefined -latomic -lrt -ldl -lpthread -lz -fuse-ld=bfd"
export CC="arm-linux-gnueabihf-gcc --sysroot=$SYSROOT"
export CXX="arm-linux-gnueabihf-g++ --sysroot=$SYSROOT"
export PKG_CONFIG_PATH=$SYSROOT/usr/lib/pkgconfig:$PKG_CONFIG_PATH
export LIBS="-lz -lsqlite3"

export TSLIB_LIBDIR=$TSLIB_ROOT/lib
export TSLIB_INCLUDEDIR=$TSLIB_ROOT/include
export LD_LIBRARY_PATH=$TSLIB_LIBDIR:$LD_LIBRARY_PATH
export CROSS_COMPILE=arm-linux-gnueabihf-

# Configure
./configure -verbose \
-prefix $QT_INSTALL_PREFIX \
-sysroot $SYSROOT \
-confirm-license -opensource -release \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake -pch \
-sql-sqlite \
-qt-libjpeg -qt-libpng -qt-zlib \
-no-opengl -no-sse2 -no-openssl -no-cups -no-glib -no-dbus -no-xcb -no-separate-debug-info \
-skip qtmacextras \
-skip qtanroidextras \
-skip qtwinextras \
-skip qtx11extras \
-I$TSLIB_INCLUDEDIR -L$TSLIB_LIBDIR \
-I$SYSROOT/usr/include -L$SYSROOT/usr/lib \
-make examples -make tools -nomake tests -no-iconv \
-skip qtwayland -skip qt3d \
-no-use-gold-linker

# Compile
sudo make -j$(nproc)
# Install
sudo make install

echo "Qt $QT_VERSION build and installation for Lichee Pi completed successfully."

qmake.conf文件如下:

GNU nano 4.8 qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabi-gcc
QMAKE_CXX = arm-linux-gnueabi-g++
QMAKE_LINK = arm-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy
QMAKE_NM = arm-linux-gnueabi-nm -P
QMAKE_STRIP = arm-linux-gnueabi-strip

QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a -lts
#QMAKE_INCDIR += /opt/tslib/include /opt/sqlite3/include
#QMAKE_LIBDIR += /opt/tslib/lib /opt/sqlite3/lib

QMAKE_INCDIR += /home/parsaeeyan/ktclicheepi/buildroot-2022.02.9/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib
QMAKE_LIBDIR += /home/parsaeeyan/ktclicheepi/buildroot-2022.02.9/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include

QMAKE_LFLAGS += -Wl,--no-undefined -latomic -lrt -ldl -lpthread

load(qt_config)

我遇到的问题是,在 make 时出现此错误:
arm-linux-gnueabi-g++ --sysroot=/home/parsaeeyan/ktclicheepi/buildroot-2022.02.9/output/host/arm-buildroot-linux-gnueabihf/sysroot -Wl,--no-undefined -Wl,--version-script,QtNetwork.version -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN -shared -Wl,-soname,libQt5Network.so.5 -o libQt5Network.so.5.9.1 .obj/qftp.o .obj/qhttpnetworkheader.o .obj/qhttpnetworkrequest.o .obj/qhttpnetworkreply.o .obj/qhttpnetworkconnection.o .obj/qhttpnetworkconnectionchannel.o .obj/qabstractprotocolhandler.o .obj/qhttpprotocolhandler.o .obj/qspdyprotocolhandler.o .obj/qnetworkaccessauthenticationmanager.o .obj/qnetworkaccessmanager.o .obj/qnetworkaccesscache.o .obj/qnetworkaccessbackend.o .obj/qnetworkaccessdebugpipebackend.o .obj/qnetworkaccessfilebackend.o .obj/qnetworkaccesscachebackend.o .obj/qnetworkaccessftpbackend.o .obj/qnetworkcookie.o .obj/qnetworkcookiejar.o .obj/qnetworkrequest.o .obj/qnetworkreply.o .obj/qnetworkreplyimpl.o .obj/qnetworkreplydataimpl.o .obj/qnetworkreplyhttpimpl.o .obj/qnetworkreplyfileimpl.o .obj/qabstractnetworkcache.o .obj/qnetworkdiskcache.o .obj/qhttpthreaddelegate.o .obj/qhttpmultipart.o .obj/qnetworkfile.o .obj/qhttp2protocolhandler.o .obj/qhsts.o .obj/qhstspolicy.o .obj/bitstreams.o .obj/huffman.o .obj/hpack.o .obj/hpacktable.o .obj/http2frames.o .obj/http2streams.o .obj/http2protocol.o .obj/qnetworksession.o .obj/qnetworkconfigmanager.o .obj/qnetworkconfiguration.o .obj/qnetworkconfigmanager_p.o .obj/qbearerengine.o .obj/qbearerplugin.o .obj/qsharednetworksession.o .obj/qauthenticator.o .obj/qdnslookup.o .obj/qhostaddress.o .obj/qhostinfo.o .obj/qnetworkdatagram.o .obj/qnetworkinterface.o .obj/qnetworkproxy.o .obj/qurlinfo.o .obj/qdnslookup_unix.o .obj/qhostinfo_unix.o .obj/qnetworkinterface_unix.o .obj/qnetworkproxy_generic.o .obj/qabstractsocketengine.o .obj/qhttpsocketengine.o .obj/qabstractsocket.o .obj/qtcpsocket.o .obj/qudpsocket.o .obj/qtcpserver.o .obj/qlocalsocket.o .obj/qlocalserver.o .obj/qsocks5socketengine.o .obj/qnativesocketengine.o .obj/qnativesocketengine_unix.o .obj/qlocalsocket_unix.o .obj/qlocalserver_unix.o .obj/moc_qhttpnetworkreply_p.o .obj/moc_qspdyprotocolhandler_p.o .obj/moc_qnetworkaccesscache_p.o .obj/moc_qnetworkaccessbackend_p.o .obj/moc_qnetworkaccessdebugpipebackend_p.o .obj/moc_qnetworkaccessfilebackend_p.o .obj/moc_qnetworkaccessftpbackend_p.o .obj/moc_qnetworkcookiejar.o .obj/moc_qnetworkreply.o .obj/moc_qnetworkreplyhttpimpl_p.o .obj/moc_qabstractnetworkcache.o .obj/moc_qnetworkdiskcache.o .obj/moc_qhttpthreaddelegate_p.o .obj/moc_qhttpmultipart.o .obj/moc_qnetworkfile_p.o .obj/moc_qhttp2protocolhandler_p.o .obj/moc_qnetworkconfigmanager_p.o .obj/moc_qnetworksession_p.o .obj/moc_qbearerplugin_p.o .obj/moc_qdnslookup_p.o .obj/moc_qhostinfo_p.o .obj/moc_qnetworkproxy.o .obj/moc_qabstractsocketengine_p.o .obj/moc_qhttpsocketengine_p.o .obj/moc_qtcpsocket.o .obj/moc_qudpsocket.o .obj/moc_qsocks5socketengine_p.o .obj/moc_qnativesocketengine_p.o -L/opt/tslib/lib -L/opt/sqlite3/lib -L/home/parsaeeyan/ktclicheepi/buildroot-2022.02.9/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -L/home/parsaeeyan/NLC2/qt5/5.9.1/qtbase/lib -lQt5Core -latomic -lrt -ldl -lpthread -lQt5Core -latomic -lrt -lpthread -ldl
/usr/lib/gcc-cross/arm-linux-gnueabi/9/../../../../arm-linux-gnueabi/bin/ld: .obj/qhttpnetworkreply.o: in function QHttpNetworkReply::~QHttpNetworkReply()':
qhttpnetworkreply.cpp:(.text+0xbcc): undefined reference to z_inflateEnd'
/usr/lib/gcc-cross/arm-linux-gnueabi/9/../../../../arm-linux-gnueabi/bin/ld: .obj/qhttpnetworkreply.o: in function QHttpNetworkReplyPrivate::initializeInflateStream()':
qhttpnetworkreply.cpp:(.text+0x112c): undefined reference to z_inflateInit2_'
/usr/lib/gcc-cross/arm-linux-gnueabi/9/../../../../arm-linux-gnueabi/bin/ld: .obj/qhttpnetworkreply.o: in function QHttpNetworkReplyPrivate::clearHttpLayerInformation()':
qhttpnetworkreply.cpp:(.text+0x1b5c): undefined reference to z_inflateEnd'
/usr/lib/gcc-cross/arm-linux-gnueabi/9/../../../../arm-linux-gnueabi/bin/ld: .obj/qhttpnetworkreply.o: in function QHttpNetworkReplyPrivate::uncompressBodyData(QByteDataBuffer*, QByteDataBuffer*)':
qhttpnetworkreply.cpp:(.text+0x3960): undefined reference to z_inflate'
/usr/lib/gcc-cross/arm-linux-gnueabi/9/../../../../arm-linux-gnueabi/bin/ld: qhttpnetworkreply.cpp:(.text+0x3ae4): undefined reference to z_inflateEnd'
/usr/lib/gcc-cross/arm-linux-gnueabi/9/../../../../arm-linux-gnueabi/bin/ld: qhttpnetworkreply.cpp:(.text+0x3b10): undefined reference to z_inflateInit2_'
/usr/lib/gcc-cross/arm-linux-gnueabi/9/../../../../arm-linux-gnueabi/bin/ld: .obj/qhostaddress.o: in function QHostAddress::toString() const':
qhostaddress.cpp:(.text+0xb48): undefined reference to QIPAddressUtils::toString(QString&, unsigned char*)'
/usr/lib/gcc-cross/arm-linux-gnueabi/9/../../../../arm-linux-gnueabi/bin/ld: .obj/qhostinfo.o: in function (anonymous namespace)::emit_results_ready(QHostInfo const&, QObject const*, QtPrivate::QSlotObjectBase*):'
qhostinfo.cpp:(.text+0x26c): undefined reference to QMetaCallEvent::QMetaCallEvent(QtPrivate::QSlotObjectBase*, QObject const*, int, int, int*, void*, QSemaphore)'
/usr/lib/gcc-cross/arm-linux-gnueabi/9/../../../../arm-linux-gnueabi/bin/ld: qhostinfo.cpp:(.text+0x2f8): undefined reference to QMetaObjectPrivate::signalOffset(QMetaObject const*)'
collect2: error: ld returned 1 exit status
make[3]: * [Makefile:502: ../../lib/libQt5Network.so.5.9.1] Error 1
make[3]: Leaving directory '/home/parsaeeyan/NLC2/qt5/5.9.1/qtbase/src/network'
make[2]: * [Makefile:270: sub-network-make_first] Error 2
make[2]: Leaving directory '/home/parsaeeyan/NLC2/qt5/5.9.1/qtbase/src'
make[1]: * [Makefile:49: sub-src-make_first] Error 2
make[1]: Leaving directory '/home/parsaeeyan/NLC2/qt5/5.9.1/qtbase'
make: * [Makefile:76: module-qtbase-make_first] Error 2

离线

#1 2025-04-08 23:18:26

4610
会员
注册时间: 2022-10-09
已发帖子: 107
积分: 88

Re: undefined reference to z_inflateEnd

QMAKE_LFLAGS += -Wl,--no-undefined -latomic -lrt -ldl -lpthread
里追加上
-lz
试试

离线

楼主 #2 2025-04-09 19:01:09

a_parsaeeyan
会员
注册时间: 2025-04-08
已发帖子: 2
积分: 2

Re: undefined reference to z_inflateEnd

感谢你的回复。
我添加了 -lz 但仍然出现同样的错误。

QMAKE_LFLAGS += -lz -Wl,--no-undefined -latomic -lrt -ldl -lpthread

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn