当前位置:网站首页 > 云计算与后端部署 > 正文

Pem文件在线(pem后缀文件)



因项目需要,客户需要一个单独的exe程序,被迫自己静态编译一版qt

本次需求只是需要使用widget、qml、network(需要openssl)模块,其他模块只是顺带编译,所以本文档仅供有需要的小伙伴参考,若需要特定模块,请自行搭建相关编译环境

Qt官方提供动态库开发环境,可以直接在线下载(Qt5.15开始,开源用户不再提供离线安装包),发布时,有一堆动态库

若直接使用静态编译,可以把所有库都放到一个exe程序中,不再依赖其他动态库或插件。但一般静态编译不包括编译器的运行时,在未安装msvc的电脑上,需要先安装微软VC++运行库合集(可通过360软件库直接下载)

所以本次考虑,直接将编译器的运行时,直接加入,到时只有一个exe程序即可运行

注:这样做,可能导致无法正常加载一般的第三方库,需要使用同一编译器编译带运行时的第三方库

1.msys

网上安装教程比较多,就不再重复了,需要安装flex和bison

命令如下(时间所限,未验证)

 
  

2.vs2019

笔者使用的是社区版,这个就不重复了,记得选择C++开发环境

3.openssl

参考下笔者的文档

编译OpenSSL库(win10+msvc2022_x64)-CSDN博客

需要使用带运行时的openssl3.3静态库

4.python

笔者安装的是python3.10的版本(编译qml相关,需要)

5.ninja

笔者使用的是Qt在线安装包里的

6.cmake

笔者使用的是Qt在线安装包里的,版本号3.29.3

7.perl

笔者直接使用360软件管家下载的ActivePerl 64位(不清楚是否需要,先加上了)

8.Ruby

笔者直接使用360软件管家下载的Ruby(不清楚是否需要,先加上了)

https://download.qt.io/archive/qt/6.6/6.6.3/single/qt-everywhere-src-6.6.3.zip

1.将源码解压到一目录中,注意目录不要出现空格或中文,目录名也不要太长

笔者解压到了G:Qt6.6.3Srcqt-everywhere-src-6.6.3

2.修改编译配置文件

打开{qt_source_dir}qtbasemkspecscommonmsvc-desktop.conf

笔者对应目录为G:Qt6.6.3Srcqt-everywhere-src-6.6.3qtbasemkspecscommonmsvc-desktop.conf

使用文本编译器打开查找-MD,全部替换成-MT,笔者修改后如下

3.打开vs2019的控制台

切换到源码目录,笔者的目录如下

 
  

4.配置环境变量

执行以下指令

 
  

 以上是笔者配置的环境变量,需要根据自己的实际情况配置下

笔者是直接在控制台窗口中进行的,也可以直接配置到系统的环境变量中

5.配置qt源码

建议使用影响编译,这样不会污染源码目录

笔者执行的命令如下:

 
  

部分配置选项解释

-static

启用静态编译

-static-runtime

启用静态运行时

-prefix "D:Qt6.6.3msvc2019_64_static"

预设安装目录

-confirm-license -opensource

是开源的

-debug-and-release

同时编译debug库和release库

-platform win32-msvc

使用msvc编译

-opengl dynamic 动态链接opengl库

-openssl-linked

直接链接openssl库编译(推荐)

若是需要进一步配置Qt源码,可以使用控制台打开cmake-gui.exe,直接打开编译目录

配置完成后,点击配置,会出现配置结果列表,笔者比较关心的是openssl是否已启用

确认无误后,直接点击生成

6.编译Qt源码

直接执行如下命令:

 
  

注:网上有说,开启多线程编译,有时会因编译的先后顺序不对,导致中止编译,只要重新执行下命令就可以继续编译

7.安装Qt

直接执行如下 命令

 
  

 笔者已经编译好的Qt6.6.3静态库(静态运行时),比较大,就形成了两个包

 

参考资料:

Building Qt Sources | Qt 6.9

Qt for Windows - Building from Source | Qt 6.9

Qt Configure Options | Qt 6.9

声明:因笔者本次编译时间过紧,并未进行全部验证

到此这篇Pem文件在线(pem后缀文件)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 电视软件后缀大全(电视软件后缀名)2025-06-17 16:27:08
  • 服务器部署springboot项目放哪个文件(如何在服务器上部署springboot项目)2025-06-17 16:27:08
  • onnx模型部署(onnx模型部署到手机)2025-06-17 16:27:08
  • 苹果软件后缀名是啥(苹果手机软件的后缀名是什么)2025-06-17 16:27:08
  • 服务器的部署(服务器的部署和搭建)2025-06-17 16:27:08
  • 服务器部署springboot项目(部署springboot项目到服务器上)2025-06-17 16:27:08
  • nfs服务器(nfs客户端服务)2025-06-17 16:27:08
  • redis修改密码和端口(redis怎么改密码)2025-06-17 16:27:08
  • linux连接redis客户端(linux连接远程redis)2025-06-17 16:27:08
  • git服务器端(git服务器默认端口)2025-06-17 16:27:08
  • 全屏图片