QT5.9.5+OPENSSL1.0.2L使用aarch64-linux-gun编译器进行交叉编译
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在使用QT进行的项目开发中具备WEB端通信功能,搭建了HTTP框架,HTTP请求按照是否加密来分有两种类型,一种为常规个HTTP请求,另一种为加密的HTTPS请求,但嵌入式后台需要使用HTTPS请求时则需要OPENSSL来支持,本文就是针对QT开发项目需要使用HTTPS功能时框架的搭建方式。
一、搭建环境要求
Qt版本:Qt5.9.5
openssl版本:1.0.2l
(注意:Qt5.9.5版本需要搭配openssl1.0.2系列的版本,其与openssl1.1.1系列版本不兼容,编译时会出现许多未知错误,猜想可能是Qt5.9.5源码验证向下兼容,而对于新版本的openssl没有进行兼容测试)
二、搭建步骤
1.aarch64-linux-gun编译器下载
链接: aarch64-linux-gun编译器
编译器搭建大家可以到网上找一下哈,搭建方式很简单,里面有配置脚本执行完就行了,有些需要配置编译器的环境变量,按照说明配置即可;
2.OPENSSL官网下载
链接: OPENSSL版本

将openssl1.0.2l源码下载下来后放到linux系统目录下,进行解压:
# tar -xvf 源码压缩包
# cd 源码解压目录
# touch build.sh
# gedit build.sh
脚本内容如下:
#!/bin/sh
./Configure linux-aarch64 no-asm shared --prefix=/home/user/WorkSpace/openssl/out --cross-compile-prefix=aarch64-linux-gnu-

# sh build.sh
# make
# make install

输出文件如上图所示。
3.Qt源码下载
进行Qt官网下载Qt5.9.5版本源码,并放到linux目录下进行解压,解压完后将输出目录拷贝到Qt源码目录,如下图所示:

创建配置脚本,内容如下:
#!/bin/sh
OPENSSL_LIBS='-L/home/user/WorkSpace/qt-everywhere-opensource-src-5.9.5/openssl1.0.2l/lib -lssl -lcrypto' \
./configure \
-prefix /home/user/WorkSpace/QT/qtCreator5.9.5-Aarch64 \
-confirm-license \
-opensource \
-shared \
-release \
-make libs \
-xplatform linux-aarch64-gnu-g++ \
-no-xcb \
-openssl-linked \
-I/home/user/WorkSpace/qt-everywhere-opensource-src-5.9.5/openssl1.0.2l/include \
-L/home/user/WorkSpace/qt-everywhere-opensource-src-5.9.5/openssl1.0.2l/lib \
-no-opengl
开始执行配置脚本
# sh 配置脚本

如上图所示即openssl链接成功,开始进行编译
# make
# make install
之后需要将openssl生成的库文件如下6个文件拷贝到QT库文件中:

Qt源码生成的可执行与库文件如下:

如果不将openssl库放入Qt库中则在使用QtNetWork模块会导致编译出错,如下图所示:

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)