无法在Qt5应用程序中加载qca-ossl

时间:2013-09-12 13:19:56

标签: c++ qt cryptography cmake qt5

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

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

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

我会对任何帮助或建议感到满意。

3 个答案:

答案 0 :(得分:5)

好的,我把它弄好了整个问题都在这... ... 1)CMit的git://anongit.kde.org/qca.git生成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)将库添加到项目中,然后它应该正确加载所有插件

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

自2015年12月1日起,在OSX上的QCA 2.1.1:

从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