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环境

相关推荐

  1. Qt】QtCreator交叉编译环境配置Qt mkspec

    2024-07-21 03:02:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 03:02:02       106 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 03:02:02       116 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 03:02:02       95 阅读
  4. Python语言-面向对象

    2024-07-21 03:02:02       103 阅读

热门阅读

  1. 栈的概念—函数调用

    2024-07-21 03:02:02       24 阅读
  2. 机器学习中的梯度下降

    2024-07-21 03:02:02       28 阅读
  3. Rollup介绍

    2024-07-21 03:02:02       25 阅读
  4. Windows图形界面(GUI)-DLG-C/C++ - 状态栏(StatusBar)

    2024-07-21 03:02:02       31 阅读
  5. 三角函数cos

    2024-07-21 03:02:02       25 阅读
  6. 【东耐设计】如何在C4D创作中激发无限创意?

    2024-07-21 03:02:02       24 阅读
  7. NLP基础技术

    2024-07-21 03:02:02       27 阅读
  8. MySQL 覆盖索引

    2024-07-21 03:02:02       28 阅读
  9. 智能门锁是如何控制进出的?

    2024-07-21 03:02:02       29 阅读