QT5.12编译QtHttpServer,亲测可用


前言

QT6自带了QtHttpServer库,但是6以下的版本需要自己编译,以下用Qt5.12.12(msvc2015_64Bit)版本为例,编译通过,原则上5.9以上的版本都可按本文编译方法。
注:Qt5.9以下不可用,因为源码会用到handleConnection。

一、下载源码

1.下载QtHttpServer源码,网址:https://github.com/qt-labs/qthttpserver
2.下载第三方依赖http-parser源码,网址:https://github.com/nodejs/http-parser
3.分别解压两个文件,复制http-parser-master文件夹下的文件到qthttpserver-master\src\3rdparty\http-parser目录下。
在这里插入图片描述
3.打开http-parser-master文件夹下的.qmake.conf文件,修改MODULE_VERSION,改为MODULE_VERSION = 5.12.12
4.QtCreator 打开qthttpserver-master目录下的qthttpserver.pro
5.打开项目设置,开启影子编译,设置路径为源码/build,这是为了方便后续拷贝库相关文件到Qt安装目录下。
在这里插入图片描述

开始编译,以下分为不依赖ssl和依赖ssl两种:

二、不依赖QtSslServer的编译

很多项目并不需要ssl,需要ssl的看后面章节。
1.打开src/src.pro,注释掉qtConfig(ssl)那三行。
在这里插入图片描述
2.打开src/httpserver.pro,注释掉qtConfig(ssl): QT += sslserver 一行。
在这里插入图片描述
3.编译生成

二、依赖QtSslServer的编译

1.QtHttpServer默认是依赖ssl的,所以把一去掉的那些注释改回来,直接编译即可。
2.这个编译很容易出错,即使编译出来了,后面使用也很麻烦(需要使用openssl,且生成cert和key)不建议用这种,建议使用上面的不依赖ssl的编译,如果应用实在需要ssl支持,可以用nginx配置代理ssl,而不是在httpserver实现里用ssl。

三、编译出错的处理

1.编译报错提示:无法打开"QtHttpServer/xxx.h"文件 时,把<private/xxx.h>改为"xxx.h",#include <QtHttpServer/qsslserver.h>改为"xxx.h"
2.编译报错无法链接Qt5SslServer时,这是编译依赖QtSslServer时容易出现的错误。打开httpserver.pro文件,注释 qtConfig(ssl): QT += sslserver 一行,在文件最后加入:
win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/…/…/build/lib/ −lQt5SslServer
else:win32:CONFIG(debug,debug∣release):LIBS+=−L$$PWD/…/…/build/lib/ -lQt5SslServerd
此处LIBS的路径改为自己电脑上的生成 Qt5SslServer.lib 库所在路径。

三、拷贝QtHttpServer到QT安装目录

把编译好的qthttpserver库相关文件放到对应的qt安装目录下。
1.拷贝qthttpserver-master\src\httpserver目录下的头文件到qthttpserver-master\build\include\QtHttpServer,拷贝qthttpserver-master\src\sslserver目录下的头文件到qthttpserver-master\build\include\QtSslServer。
2.拷贝qthttpserver-master\build\bin下的全部文件放到Qt5.12.12\5.12.12\msvc2015_64\bin。
3.拷贝qthttpserver-master\build\include下的QtHttpServer和QtSslServer文件夹到Qt5.12.12\5.12.12\msvc2015_64\include。
4.拷贝qthttpserver-master\build\lib下的.dll、.lib、.prl共12个文件到Qt5.12.12\5.12.12\msvc2015_64\lib。
5.拷贝qthttpserver-master\build\mkspecs\modules-inst下的文件到Qt5.12.12\5.12.12\msvc2015_64\mkspecs\modules。

四、测试QtHttpServer

1.新建一个工程,在.pro文件里添加:QT += sslserver httpserver,如果不依赖ssl,则添加:QT += httpserver
2.main代码如下:
① 使用ssl,先测试QSslSocket::supportsSsl()是否支持,返回true即可。
② 如果不可使用,需要安装openssl,网址:https://slproweb.com/products/Win32OpenSSL.html,此处安装的是32Bit Light,下载安装好即可。
③ 以后使用可以把libcrypto-1_1.dll和libssl-1_1.dll拷贝到应用程序下。
④ 需要使用openssl生成cert和key。<

Qt 5.12版本编译QOCI(Qt Online Compiler Infrastructure),是一个用于在云端编译和运行Qt应用程序的工具。它允许开发者在无需本地安装Qt环境的情况下,直接通过Web浏览器上传源码并获取预构建的二进制文件。在编译QOCI时,你需要下载或克隆Qt 5.12源码,然后配置它以链接到合适的QOCI库。通常步骤包括: 1. **获取源码**:从Qt官方网站下载Qt 5.12源代码包或使用git clone命令克隆仓库。 ```sh $ git clone https://code.qt.io/cgit/qt/qt5.git ``` 2. **创建构建目录**:进入源码根目录,并创建一个新的构建目录,如`qoci-build`。 3. **配置构建**:使用`./configure`脚本来指定目标平台、启用QOCI支持等选项。例如: ```sh $ cd qt5.12.0 $ mkdir qoci-build $ cd qoci-build $ ../qtbase/configure -opensource -confirm-license -platform linux-g++ -developer-build -nomake tests examples -make qocigui ``` 记得替换`linux-g++`为你所需的编译器和平台。 4. **编译QOCI**:执行`make`命令开始编译过程。 5. **试和部署**:编译完成后,你可以通过运行`make test`检查是否一切正常。生成的QOC服务库和Qt插件通常会放在`bin/qmake`或类似路径下,可以将它们复制到相应的Qt项目中使用。 注意:由于Qt 5.12已经较老,QOCI的官方支持可能已经停止。对于最新版本的Qt项目,建议使用更新的版本以及最新的Qoci集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值