Windows 7 に QCA-OSSL (Qt 暗号化アーキテクチャの一部) プラグインをインストールする際の問題
質問
QCAを使用しようとしています(リンク) Windows PC で数日間使用していますが、Linux ボックスでは問題なく動作しますが、Windows では動作しません。
そこで、QCA をインストールするためのすべての手順に従い、次に QCA 用の ossl プラグインをインストールしました。QCA は正常に動作しますが、何らかの理由でプラグインが Qt Creator に表示されず、プラグインの一部の機能も使用できません。
QCA に付属の qcatool2.exe を使用してプラグインをチェックしました。
qcatool2 plugins --debug
次のエラー メッセージが表示されます。
plugin: qca-ossl2.dll: failed to load: The plugin 'C:/Qt/2010.05/qt/plugins/crypto/qca-ossl2.dll' uses incompatible Qt library. Expected build key "Windows mingw debug full-config", got "Windows mingw release full-config"
これは、qtがプラグインをデバッグモードでコンパイルする必要があるように思えます(リリースではなくデバッグを含むビルドキーを取得するため)ので、追加しました
CONFIG += debug
プラグインのプロジェクトファイルにアクセスし、いつものようにqmakeとmingw32-makeを実行しましたが、これは効果がなかったようです。
プラグインのプロジェクト ファイルは次のようになりました。
TEMPLATE = lib
CONFIG += plugin
QT -= gui
DESTDIR = lib
VERSION = 2.0.0
unix:include(conf.pri)
windows:CONFIG += crypto
windows:include(conf_win.pri)
CONFIG += create_prl
SOURCES = qca-ossl.cpp
windows:{
load(winlocal.prf)
isEmpty(WINLOCAL_PREFIX) {
error("WINLOCAL_PREFIX not found. See http://delta.affinix.com/platform/#winlocal")
}
OPENSSL_PREFIX = $$WINLOCAL_PREFIX
DEFINES += OSSL_097
INCLUDEPATH += $$OPENSSL_PREFIX/include
LIBS += -L$$OPENSSL_PREFIX/lib
LIBS += -llibeay32 -lssleay32
LIBS += -lgdi32 -lwsock32
}
!debug_and_release|build_pass {
CONFIG(debug, debug|release) {
mac:TARGET = $$member(TARGET, 0)_debug
windows:TARGET = $$member(TARGET, 0)d
}
}
CONFIG += debug
何かアイデアがある人はいますか?さらに詳細が必要な場合は、可能な限り徹底的に説明するよう努めましたので、お問い合わせください。ありがとう
トム
解決
ってい類似状況qca-osslビルドフランスのlinuxにはwindows上でしか利用できません。私はどちらなのでしょうか突破口ができます。
バージョンパッチ
- qtsdk-2010年05月
- qca-2.0.3
- qca-ossl-r1190163からのリポジトリ)
- openssl-1.0.0b
最初に使用している場合は、新しいバージョン(0.9.7+ると思い)のOpenSslが必要になる場合があり利用のqca-ossl版からのリポジトリでのパッチも混触危険物質.なかでコメントアウトの新しいqca-ossl.cpp ファイルを扱うSHA224,SHA256,SHA384、SHA512を避ける構築。を使用していqca-osslの暗号んなハッシュかを調べる誤差がある。
固定で
Windowsの構築の問題を何倍に私にとって、その幹からの粗悪建設のためのwindows版に引き出しおよび設定ができますしているのは嬉しいと少しconfigureスクリプトのlinuxでは、その一方で、windows?いっ。
あこがいので選ばれた標準以外の各拠点に設置支援図書館が私の願います。Qca、OpenSslの両方存在しているプロジェクトのディレクトリ構造の図書館/ディレクトリにあります。私の推測ではんだを行う場合にチャレンジしているうちにクロスコンパイルアプリケーションですが、もわなかった場合、以下のすべます。
見OpenSsl
Qca-osslィを築くことができな図書館の本イベントは終了いたしました。接続する...:)で指定し直です。コメントのラインに関するwinlocal.prfの変化を解でqca-ossl.プログラムです。また直接の指定場所openSsl.
TEMPLATE = lib
CONFIG += plugin
QT -= gui
DESTDIR = lib
VERSION = 2.0.0
unix:include(conf.pri)
windows:CONFIG += crypto
windows:include(conf_win.pri)
CONFIG += create_prl
SOURCES = qca-ossl.cpp
windows:{
# Rather than rely on the winlocal.prf file, we will specify the location of the openssl
# by hand when running qmake.
#
# load(winlocal.prf)
# isEmpty(WINLOCAL_PREFIX) {
# error("WINLOCAL_PREFIX not found. See http://delta.affinix.com/platform/#winlocal")
# }
#
# OPENSSL_PREFIX = $$WINLOCAL_PREFIX
DEFINES += OSSL_097
INCLUDEPATH += $$OPENSSL_PREFIX/include
LIBS += -L$$OPENSSL_PREFIX/lib
LIBS += -llibeay32 -lssleay32
LIBS += -lgdi32 -lwsock32
}
!debug_and_release|build_pass {
CONFIG(debug, debug|release) {
mac:TARGET = $$member(TARGET, 0)_debug
windows:TARGET = $$member(TARGET, 0)d
}
}
今まで直接アクセスの$$OPENSSL_PREFIX環境変数。プロファイルです。まで設定できまqmakeるには、次のようにします。
qmake.exe "OPENSSL_PREFIX=C:/path/to/openssl-1.0.0b"
対応することができるでしょう使用後にスラッシュまたはスラッシュのみ.ここで選べる前からQtは推奨されていませんで4.7.
また、お客様がOPENSSL_PREFIX変数を直接ます。プロファイルです。
見Qca
比較した上で、unixやwindowsのmakefile qca-osslんなものは一切含まれません。にqca図書館のための建物やリンク!?!?!このため、"未定義のインターフェイス"のQ_INTERFACES(QCAPlugin)のopensslPluginクラス定義の末qca-ossl.cpp.
これを回避するために、必要なものを明示的に定義するなど、図書館パス。拡大のqmake線から前項の最終qmakeラインは以下の通りです。
qmake.exe "OPENSSL_PREFIX=C:/path/to/openssl-1.0.0b" "INCLUDEPATH+=C:/path/to/qca-2.0.3/include/QtCrypto" "LIBS+=-LC:/path/to/qca-2.0.3/lib -lqca2"
ダイアログボックス"Qca-ossl
を実行後qmake線上を走る平野ol'makeする必要がありまイQca-ossl.コピーすることができるよdllからリチウムイオン電池/ディレクトリへのQtのpluginsディレクトリを使用している場合は、私のバージョンのデフォルトC:\Qt\2010.05\qt\plugins\crypto.また、お客様の移動で暗号化ディレクトリの根レベルのプロジェクトのディレクトリ構造などC:\path o\my\project\crypto.
私はこういう事が決められません!
他のヒント
実際に、このチュートリアルを試すことができます ウィンドウ上の QCA+OpenSSL. 。うまくいっているよ。
ちなみに、Window では AES 256 で QCA を利用できます。ただし、Symbian では使用できません。それをするアイデアはありますか?