2015-10-07 24 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克里斯