2015-10-07 22 views
0

我已经安装了QCA以下QCA包的Ubuntu 15.04在:QT加密QCA没有编制

qca2-utils  
    qca-qt5-2-utils 
    libqca2      
    libqca2-plugin-cyrus-sasl 
    libqca2-plugins    
    libqca-qt5-2-dev 
    libqca2-dbg     
    libqca2-plugin-gnupg  
    libqca-qt5-2    
    libqca-qt5-2-plugins 
    libqca2-dev     
    libqca2-plugin-ossl   
    libqca-qt5-2-dbg 

当运行命令dpkg -L libqca2我得到如下:

/. 
/usr 
/usr/lib 
/usr/lib/x86_64-linux-gnu 
/usr/lib/x86_64-linux-gnu/libqca.so.2.1.0 
/usr/share 
/usr/share/doc 
/usr/share/doc/libqca2 
/usr/share/doc/libqca2/copyright 
/usr/share/doc/libqca2/changelog.Debian.gz 
/usr/lib/x86_64-linux-gnu/libqca.so.2 

.pro文件包含条目:

CONFIG += c++11 crypto 

and在main.cpp我有:

#include <Qca-qt5/QtCrypto/QtCrypto> 
#include <QtCrypto/QtCrypto> 

int main(int argc, char *argv[]) { 

     QCA::Initializer init; 

     return 0; 
    } 

但我得到的错误

 /main.cpp:37: error: undefined reference to `QCA::Initializer::Initializer(QCA::MemoryMode, int)' 

还有什么我需要安装或添加在.pro文件?

编辑: OK了comilation错误可以解决,但现在我得到段错误调用QCA::Initializer init;

enter image description here

回答

2

是一个链接错误时,即头被发现,你的代码编译比,但链接器无法从.o文件和libqca2库创建最终的二进制文件。

您需要告诉链接器它应该查找libqca。这通常是通过向的.pro(未经测试)来完成:

LIBS += -lqca 

我不知道该怎么做CONFIG += crypto,因为我从来没有在其他配置值来比那些记录在这里:http://doc.qt.io/qt-5/qmake-variable-reference.html#config和Qt的所有模块(包括自动链接)通过QT变量,例如QT += core gui widgets


Ubuntu的libqca2是Qt的只有4个!

关于您的分段故障:我认为问题是libqca2 is made for Qt 4 and you are using Qt 5 (right?)

您可以确认libqca需要Qt 4的位置:http://packages.ubuntu.com/vivid/libqca2

我不知道,如果QCA依然维持。所以你可能需要在Qt 4中使用它,或者寻找替代品。

你也许能够编译QCA Qt的5自己,但是这将需要先进的编译系统知识:https://github.com/JPNaude/dev_notes/wiki/Using-the-Qt-Cryptographic-Architecture-with-Qt5

+0

好了,现在它编译,但我得到的错误'该方案有意外finished.'打电话时'QCA ::初始化程序初始化;'你大概知道这是什么? – wasp256

0

LIBS + = -L/usr/lib目录/ x86_64的Linux的GNU的 LIBS + = -lqca-qt5_LIBNAME

LG克里斯