QT 4.8.1 Source(everywhere-commercial-version)をダウンロードしました。また、Windwos764ビットでVisualStudio2008Proを使用して64ビットバージョンのQTをコンパイルしました。
その後、vs2008で簡単なQTアプリケーションプロジェクトを作成しました。
しかし、次のようにコードにテスト用のQSslErrorクラスを追加した場合。
#include <QSslError>
..
Qt64Test::Qt64Test(QWidget* parent, Qt::WFlags flags): QMainWindow(parent, flags)
{
ui.setupUi(this);
QSslError a;
}
次に、コンパイルしてC2065エラーが発生します。
1>。\qt64test.cpp(10):エラーC2065:'QSslError':未定義の識別子
しかし、ヘッダーは含まれています!
QTDIRが正しく設定されています。また、すべてのQTインクルードパス設定も正しく設定されています。
vs2008コンパイラがこの識別子を認識しない理由がわかりません。
ヘッダーファイル(qsslerror.h)は次のようになります。
#ifndef QSSLERROR_H
#define QSSLERROR_H
#include <QtCore/qvariant.h>
#include <QtNetwork/qsslcertificate.h>
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
QT_MODULE(Network)
#ifndef QT_NO_OPENSSL
class QSslErrorPrivate;
class Q_NETWORK_EXPORT QSslError
{
public:
enum SslError {
NoError,
//..
(そして、QT_NO_OPENSSLは私のコードで定義されていません。)