首页 > 其他分享 >aggregate ‘QSslConfiguration conf‘ has incomplete type and cannot be defined

aggregate ‘QSslConfiguration conf‘ has incomplete type and cannot be defined

时间:2024-06-20 08:59:05浏览次数:14  
标签:cannot QSslConfiguration Qt 编译 defined sudo openssl ssl 源码

用Qt进行网络开发,所以程序中包含了network模块,但编译Qt程序时报错aggregate 'QSslConfiguration conf' has incomplete type and cannot be defined,报错截图如下

在这里插入图片描述

QSslConfiguration类是Qt框架中用于SSL配置的一部分,报错表示编译器没有找到 QSslConfiguration的完整定义,需要对以下几方面进行检查

  • 编译环境中需要包含Qt的ssl模块的正确头文件
  • 配置文件(.pro或CMakeLists.txt)需要包含ssl模块
// pro文件
QT += core network ssl crypto

// CMakeLists.txt
find_package(Qt5 COMPONENTS Network REQUIRED)
include_directories(${Qt5Network_INCLUDE_DIRS})
// Program是进程名称
target_link_libraries(Program Qt5::Network ssl crypto)
  • 头文件必须包含
#include <QSslConfiguration>

如果以上几项配置都正确的话,清理并重新构建项目,但还是有同样的报错的话,可以尝试以下方法

我是在本地通过编译Qt源码来搭建Qt环境的,但是Qt环境和openssl环境有个先后顺序,需要先编译openssl环境,再进行Qt源码的./configure,否则在进行Qt源码配置的时候,不会支持ssl,也就没办法进行网络相关的开发,这种情况应该比较少见,所以仅做参考。openssl可以通过apt-get安装,也可以下载源码编译

# 安装openssl环境和头文件及静态库,openssl环境搭建后再进行Qt源码编译
# Ubuntu
sudo apt-get install openssl
sudo apt-get install openssl-devel

# CentOS
sudo yum -y install openssl
sudo yum -y install openssl

Qt源码openssl源码,点击跳转下载,我用的版本是openssl-1.0.2eQt-5.6.0

在这里插入图片描述
在这里插入图片描述

标签:cannot,QSslConfiguration,Qt,编译,defined,sudo,openssl,ssl,源码
From: https://blog.csdn.net/qq_38311163/article/details/139804406

相关文章