2

我决定将我的应用程序从 Qt4 迁移到 Qt5。使用 Qt4,我使用 QCA 和 QCA-OSSL 没有任何问题,但现在 OSSL 插件不想加载。

我已经从 Qt5 下的 git://anongit.kde.org/qca.git 编译了 QCA,所有插件都没有任何问题。比我将 QCA 添加到我的应用程序(我正在使用 CMAKE)中,它编译正确,但在运行期间它不允许 AES 密码,因为未加载 OSSL 插件。

我搜索了论坛,将 libqca-ossl.so 放入加密目录,并将此目录复制到我的 /usr/lib/qt/plugins 也复制到我的项目和构建目录,但它没有帮助。

对于任何帮助或建议,我将不胜感激。

4

3 回答 3

5

好的,我得到它的工作整个问题出在这个......
1) git://anongit.kde.org/qca.git 的 CMake 将 config-qca.h 生成到 QCA 源目录。
2) 在这个文件中有 #define QCA_PLUGIN_SUBDIR "qca-qt5" 而不是预测的 "crypto"

一种可能的解决方案是:
1)删除 QCA 中的 lib 目录(如果以前的配置中有一个)
2)运行 CMAKE
3)在 config-qca.h 中将“qca-qt5”更改为“crypto”
4)构建库
5)将库添加到您的项目,然后它应该正确加载所有插件

于 2013-09-17T12:59:10.973 回答
0

一个很好的解决方案,没有实际修复 QCA,来自构建目录:

cmake . -DQCA_PLUGINS_INSTALL_DIR=`qmake -query QT_INSTALL_PLUGINS`/crypto

这会将插件与 Qt 插件一起安装。如果您不想在那里安装它,您可以在 QT_PLUGINS_PATH 环境变量中添加另一个路径,然后将其安装在那里,仍然添加加密目录。

于 2014-06-17T23:55:29.747 回答
0

从 2015 年 12 月 1 日的 QCA 2.1.1 开始,在 OSX 上:

从 kde anongit 获取 qca

brew install openssl # fixes apple's openssl deprecation error
export PATH=$PATH:/path/to/qt5/bin/qmake
cmake . -DCMAKE_PREFIX_PATH=/usr/local/opt/openssl #use the new openssl
make install
于 2015-12-01T21:55:32.377 回答