2013-07-15 2 views
2

일주일이 지나면 파일과 문자열을 암호화하기 위해 QT를 찾을 수있는 모든 Cryptography-Library를 구현하려고했지만 불가능한 것처럼 보입니다. 깨끗한 우분투 - 설치로 시작하여 모든것을 업데이트하고, QT를 설치했으며, 우분투에 Openssl이 이미 설치되어 있기 때문에 시작하려고했습니다. 일부 자습서를 읽고 예제를 시도했지만 "정의되지 않은 참조"문제를 해결하지 못했습니다. 내가 프로젝트 파일에 추가해야 할 올바른 라이브러리를 찾았지만 아무 것도 효과가 없었습니다. Openssl이 나에게 도움이되지 않았기 때문에 "QCA", "Crypto ++", "MCrypt"및 내가 찾은 일부 공립 도서관을 통해 봤습니다. 처음 세 번 째로 "정의되지 않은 참조"오류가 다시 발생했고 다른 라이브러리는 코드 자체에서 데이터 유형간에 코드를 잘못 추출했거나 다른 변환을 수행했습니다.Qt | 모든 암호화 라이브러리를 사용할 수 없습니다.

저는 전체 암호화 기능이 처음 이었지만 전혀 작동하지 않습니다. 누군가 내 고통에서 벗어날 수 있고 QT를 사용하여 깨끗한 우분투 설치에서 어떤 라이브러리가 작동하도록 도울 수 있다면 정말 멋질 것입니다. 난 그냥 뭔가 잘못해야만 .... 웹에서 찾은 자습서가 다른 사람에게 잘 작동하고있는 것은 아닙니다. 예를 들어

는 .... 나는 "libmcrypt-DEV", "libmcrypt4"와 "Mcrypt 라이브러리"패키지를 설치하고 여기에 코드 예제를 따라 다음은 좋은 작품을 포함 mcrypt linux how to use rijndael 256 cbc는, 헤더 파일을 찾을 수 있으며, mcrypt 클래스의 코드가 강조 표시되어 있으므로 올바르게 작동해야합니다. 그러나 코드를 컴파일하려고 할 때 mcrypt의 함수를 사용하는 모든 줄에서 "정의되지 않은 참조"오류가 발생합니다. 이것은 다른 모든 라이브러리에서도 발생했는데 .... 다른 사람들이 누락 된 것을 발견 할 수는 없지만. 프로젝트 파일에 포함시켜야하는 추가 라이브러리 포함 사항이 없습니다.

내가 뭘 잘못하고 있니? "정의되지 않은 참조"오류가있는 거대한 목록을보고 싶다는 점을 제외하고 나는 너희에게 보여줄 것이 아무것도 없다는 것을 두려워한다. : -/

내가 그런 걸하려고하면 :

error: undefined reference to `mcrypt_module_open' 
error: undefined reference to `mcrypt_module_close' 

프로젝트 파일은 다음과 같은 오류

#include <mcrypt.h> 

int main() 
{ 
    MCRYPT td = mcrypt_module_open("rijndael-256", NULL, "cbc", NULL); 
    mcrypt_module_close(td); 
} 

를 내가 얻을 :

QT  += core 

QT  -= gui 

TARGET = untitled 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 


SOURCES += main.cpp 

답변

2

error: undefined reference 말한다, 그 링커는 할 수 없습니다 도서관 자체를 찾으십시오. 포함시킨 헤더 파일이 있지만 소스가 표시되지 않습니다. 이 문제를 해결하려면, 당신은 소스가 링커, 말, 그래서 libmcrypt 라이브러리에 대해이 같은 예를 들어, *.pro 파일 추가 라인에 추가 할 수 있습니다

리눅스에서 LIBS += -L/path/to -lmcrypt

, 당신은 APT와 함께 설치 한 경우 - 설치 또는 이와 유사한, - L 일반적으로 필요하지 않습니다

+0

고마워, 그게 해결. 나는 또한 라인을 추가하는 것으로 openssl을 사용하고있다 : LIBS + = -lcrypto – Endauriel

관련 문제