我仍然是Qt的新手,但我想写一个允许用户通过电子邮件发送小信息的程序。
当我去构建我的项目时,我得到的错误就像
expected type-specifier before 'QSslSocket'
和'QSslSocket' was not declared in this scope
。当我尝试编译代码时以及当我尝试从git编译演示时,我得到了这些,所以我不认为它在我的代码中。
调查这个问题我看到大多数解决方案都涉及确保在机器上安装了openssl,并且Qt是使用配置中设置的openssl标志构建的。我已确保安装了openssl和libssl-dev,并且我使用openssl标志重建了我的Qt版本。仍然没有运气。
在我的项目中,我在.pro文件中添加了QT += core network
。我的* .h文件中有#include <QtNetwork/QsslSocket>
需要它。
至于我的系统,我正在研究Ubuntu 14.04 LTS。我安装了Qt 4.8.6(配置文件中包含-openssl)。 Openssl和libssl-dev都在1.0.1f-1ubuntu2.11。
如果您有任何想法,我们将不胜感激!
答案 0 :(得分:0)
最终,它确实归结为我的配置。我从我的计算机sudo make uninstall
中完全删除了所有版本的Qt4(因为我是从tarball而不是从存储库安装的),我使用make confclean
清理了配置文件,我使用{{1}重建了配置},然后是./configure -openssl
,最后是make
。我认为之前的问题是我没有先清理我的配置文件。我为嵌入式Linux安装了一个版本,因为我之后安装了该版本,所以我可能会将sudo make install
标志应用于该版本。对于记录,-openssl
和#include <QtNetwork/QSslSocket>
都有效,至少在我的Qt版本(4.8.6)中有效。