Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在'之前需要类型说明符;QSslSocket';在QT应用中_C++_Qt_Email - Fatal编程技术网

C++ 在'之前需要类型说明符;QSslSocket';在QT应用中

C++ 在'之前需要类型说明符;QSslSocket';在QT应用中,c++,qt,email,C++,Qt,Email,我对Qt还是相当陌生,但我想写一个程序,允许用户通过电子邮件发送一条小消息 当我开始构建我的项目时,我会遇到如下错误 此作用域中未声明“QSslSocket”之前的预期类型说明符和“QSslSocket”。当我试图编译代码和从git编译演示时,我都会得到这些,所以我认为它不在我的代码中 研究这个问题,我发现大多数解决方案都涉及确保机器上安装了openssl,并且Qt是使用配置中设置的openssl标志构建的。我已经确保安装了openssl和libssl dev,并且刚刚使用openssl标志重新

我对Qt还是相当陌生,但我想写一个程序,允许用户通过电子邮件发送一条小消息

当我开始构建我的项目时,我会遇到如下错误
此作用域中未声明“QSslSocket”之前的预期类型说明符
“QSslSocket”。当我试图编译代码和从git编译演示时,我都会得到这些,所以我认为它不在我的代码中

研究这个问题,我发现大多数解决方案都涉及确保机器上安装了openssl,并且Qt是使用配置中设置的openssl标志构建的。我已经确保安装了openssl和libssl dev,并且刚刚使用openssl标志重新构建了我的Qt版本。还是不走运

在我的项目中,我在.pro文件中添加了
QT+=core network
。我在需要它的*.h文件中包含了

至于我的系统,我正在使用Ubuntu 14.04 LTS。我已经安装了Qt4.8.6(配置文件中还包括-openssl)。Openssl和libssl dev的版本都是1.0.1f-1ubuntu2.11


如果您有任何想法,他们将不胜感激

最终,这取决于我的配置。我从计算机上完全删除了Qt4的所有版本
sudo make uninstall
(因为我是从tarball安装的,而不是从存储库安装的),我使用
make confclean
清理了配置文件,我使用
/configure-openssl
重新构建了配置,然后是
make
,最后是
sudo-make-install
。我认为之前的问题是我没有首先清理配置文件。我为嵌入式Linux安装了一个版本,可能是因为我后来安装了
-openssl
标志,所以我在该版本中应用了该标志。对于
#include
#include
工作记录,至少在我的Qt版本(4.8.6)中是这样。

正确的包含行(可以在文档中找到)是
#include
。另外,在将
network
添加到.pro文件后是否重新运行了qmake?我所构建的项目最初使用了
\include
行。我再次尝试使用
#include
,但仍然得到
QSslSocket未命名类型的错误。在第二部分,我使用QtCreator并点击build。我假设它正在运行qmake作为其流程的一部分。不是吗?我已经通过这种方式成功地构建和运行了项目,只是没有涉及ssl的项目。如果您手动打开.pro文件,您必须右键单击该项目并单击“run qmake”。可能存在重复的。有趣的是,他们也在使用Qt。您可能可以删除以“查看此问题,我发现大多数解决方案都涉及确保openssl…”开头的段落。这与您描述的问题无关。