我决定将我的应用程序从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 也复制到我的项目和构建目录中,但它没有帮助。
我将不胜感激任何帮助或建议。
我让它工作,整个问题就在这里......
1) git://anongit.kde.org/qca.git 的 CMake 生成 config-qca.h 到 QCA 源目录。
2)在这个文件中 #define QCA_PLUGIN_SUBDIR 有"qca-qt5"而不是预测的"crypto"
一种可能的解决方案是:
1) 删除 QCA 中的库目录(如果有以前配置中的库目录)
2) 运行 CMAKE
3) 在 config-qca.h
中将 "qca-qt5" 更改为 "crypto"4) 构建库
5)将库添加到您的项目中,然后它应该正确
加载所有插件
一个好的解决方案,没有实际修复QCA,是从构建目录:
cmake . -DQCA_PLUGINS_INSTALL_DIR=`qmake -query QT_INSTALL_PLUGINS`/crypto
这将把插件与Qt插件一起安装。如果您不想在那里安装它,您可以在环境变量中添加另一个路径QT_PLUGINS_PATH然后将其安装在那里,仍然添加加密目录。
自 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