当前位置: 首页 > news >正文

linux环境交叉编译openssl库,以使Qt支持https

一.前言

Qt若需要支持https,则需要openssl的支撑,并且要注意,Qt不同版本会指定对应的openssl版本库,比方我用的Qt5.15.10他要求用的openssl版本是1.1.1,你就不能用其他版本,不然基本就是失败报错。
如何查看Qt对应openssl的版本呢?
在程序可以执行的任何地方加上这两句

include <QSslSocket>
//查看需要的openssl版本
QString strVersion = "QSslSocket="<<QSslSocket::sslLibraryBuildVersionString();//查看是否支持
bool bExist = (QSslSocket::supportsSsl() == true ? "true" : "false");

在Linux下Qt要支持https,原理也是一样,需要依赖openssl。如果开发板上
就需要先交叉编译openssl,再交叉编译Qt,以保证其支持ssl。以下介绍Linux环境下怎么源码编译openssl。
环境准备:
Ubuntu :18.04;
openssl 1.1.1.g;
交叉编译链:aarch64-none-linux-gnu-gcc
openssl1.1.1g源码包下载地址
1.解压
tar xzvf openssl-1.1.1g.tar.gz
在这里插入图片描述
2.进入openssl文件夹
进入openssl文件夹
3.查看交叉编译链路径
在这里插入图片描述
4.配置config
./config no-asm shared no-async --prefix=/usr/local/openssl1.1.1g-Arm --cross-compile-prefix=/opt/gcc-arm-10.3-linux-gnu/bin/aarch64-none-linux-gun-
在这里插入图片描述
注意:
no-asm: 在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的;
shared: 生成动态连接库;
no-async: 交叉编译工具链没有提供GNU C的ucontext库;
–prefix=: 安装路径,编译完成install后将有bin,lib,include等文件夹;
–cross-compile-prefix=: 交叉编译工具。

5.修改makefile文件
用vim打开Makefile;
修改 PLATFORM=linux-x86-x64 为 PLATFORM=arm;
在这里插入图片描述

在这里插入图片描述
去掉“-m64”
在这里插入图片描述
6.make编译
使用make -j4进行编译,可能报错,查看如果是报错没权限,改用sudo make -j4;
7.安装
执行安装命令 make install,安装可能报错说找不到你指定的安装目录,这是也是由于没权限,改为sudo make install 安装;
在这里插入图片描述
安装完成,对应目录下安装了openssl的库文件。

接下来就是引用openssl来交叉编译Qt源码库,参考这篇文章Ubuntu中完成Linux环境Qt源码交叉编译并配置Qt环境

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • (二)原生js案例之数码时钟计时
  • 使用ChatGPT来撰写和润色学术论文的教程(含最新升级开桶ChatGpt4教程)​​
  • MySQL事务管理(上)
  • C++ versions less than C++14/11 are not supported.报错
  • vscode 远程 Ubuntu 系统
  • 神经网络模型实现(训练、测试)
  • 我的创作一周年纪念日
  • Spring Boot 中使用 Resilience4j 实现弹性微服务的简单了解
  • 自学鸿蒙HarmonyOS的ArkTS语言<十>@BuilderParam装饰器
  • ERROR: No matching distribution found for execjs
  • 《逻辑006:页面跳转并传参》
  • 麻省理工学院 - MIT - 线性代数学习笔记
  • 【linux】服务器安装NVIDIA驱动
  • 【React笔记初学总结一】React新手的学习流程笔记总结,掰开了揉碎了,下载安装基础结构学习
  • Nginx系列-8 allow与deny和error_page使用介绍
  • [译]前端离线指南(上)
  • 30天自制操作系统-2
  • HTML中设置input等文本框为不可操作
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JavaScript对象详解
  • laravel 用artisan创建自己的模板
  • Linux快速复制或删除大量小文件
  • MySQL主从复制读写分离及奇怪的问题
  • ng6--错误信息小结(持续更新)
  • React as a UI Runtime(五、列表)
  • swift基础之_对象 实例方法 对象方法。
  • 第2章 网络文档
  • 开源地图数据可视化库——mapnik
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 盘点那些不知名却常用的 Git 操作
  • 前嗅ForeSpider教程:创建模板
  • 因为阿里,他们成了“杭漂”
  • 用简单代码看卷积组块发展
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​MySQL主从复制一致性检测
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # 达梦数据库知识点
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #1014 : Trie树
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #QT(智能家居界面-界面切换)
  • #考研#计算机文化知识1(局域网及网络互联)
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (04)odoo视图操作
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (windows2012共享文件夹和防火墙设置
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)计算机毕业设计大学生兼职系统
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (三)docker:Dockerfile构建容器运行jar包