configure时,除了-ssl,还要选-openssl-runtime或-openssl-linked。
一开始指定了-openssl-runtime,这应该算动态加载openssl库了吧?
编译倒是顺利,然后往上找了几句想输出下qt支持的openssl版本:
// 查詢Qt支持的版本
bool bSupp = QSslSocket::supportsSsl();
QString buildVersion = QSslSocket::sslLibraryBuildVersionString();
QString version = QSslSocket::sslLibraryVersionString();
qDebug() << bSupp << buildVersion << version;
// 查看当前网络请求支持协议
QNetworkAccessManager *accessManager = new QNetworkAccessManager(this);
qDebug() << accessManager->supportedSchemes();
结果会提示找不到QSslSocket,虽然#include了,pro文件里也QT+=network了。
然后就在pro文件里用LIBS += -L XXX -lssl -lcrypto指定交叉编译后的openssl库位置。INLUCEPATH+=对应头文件。
结果还是报错:
main.cpp: In function 'int main(int, char**)':
main.cpp:12:18: error: 'QSslSocket' has not been declared
bool bSupp = QSslSocket::supportsSsl();
^~~~~~~~~~
----------------------------------
尝试用-openssl-linked方式,配置脚本里,-L openssl库路径 -I openssl库头文件路径
结果配置后make时报错:
libssl.so和libcrypto.so找不到。
-L 库路径 后如果直接加 -lssl -lcrypto,则配置脚本时就直接报错,报语法错误。
后看到往上帖子说,配置OPENSSL_LIBS变量,然后-L里加上-Wl,rpaht。
OPENSSL_LIBS='-L/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib -lssl -lcrypto' \
./conigrua ...
...
-ssl \
-openssl-linked \
-I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include \
-L'/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib -Wl,-rpath=home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib' \
改成这样后,最后还是报同样的错误。
最近编辑记录 Gentlepig (2023-05-27 16:40:34)
离线
晕,发现-openssl-runtime其实可能没成功:
libudev.so.1 not found
make -j4时,出现这个错误编译并没有停下,不容易察觉到。
如果是单make,就容易看到这个了。
------------------------------------------
感觉最后的-L/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib/ \没起作用。
#!/bin/sh
export PATH=$PATH:/home/any/MPU/AllWinner/T113-s3/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/
export STAGING_DIR=/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir
./configure -prefix ./t113-qt \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-c++std c++11 \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glib=no \
--iconv=no \
--pcre=qt \
--zlib=qt \
-ssl \
-openssl-runtime \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
-linuxfb \
--xcb=no \
-tslib \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/ \
-I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/allwinner/ \
-I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/allwinner/include \
-L/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib/ \
-recheck-all
离线
你好 我也是遇到了 同样的问题,请问你解决了吗?
哈,一年了,忘了当时是怎么解决的。
估计就是上边回复里的那个问题吧,可能还是路径的问题?
离线