[완료] c/c++ 외부라이브러리는 어떻게 사용해야하나요? (Qt)
글쓴이: pogusm / 작성시간: 목, 2011/05/12 - 9:28오전
http://cryptopp.sourceforge.net/ 에서 암호화 관련 파일을 다운받았습니다.
( http://sourceforge.net/projects/cryptopp/files/cryptopp/5.6.1/cryptopp561.zip/download )
VC++용 솔루션 파일이 있길래, VC++로 빌드를 하였더니,
cryptlib.lib 이외의 이런 저런 결과물을 얻을 수 있었습니다.
그래서.. 원소스에 있던 *.h 파일들과, cryptlib.lib 파일을
C:\Qt\2010.05\qt\include\cryptopp\ 디렉토리에 복사해서
Qt에서 테스트를 해보려는데.. 잘 안되는거 같습니다..
조언 부탁드립니다. 굽신~
참고 : http://lyb1495.tistory.com/tag/AES <-- 이곳을 참고하였고, 테스트용 소스코드도 이곳에 있는것을 사용하였습니다
Forums:
Crypto++ 가 이상할 수도 있습니다.
저도 AES가 필요해서 가져다 쓸려고 했는데 간단히 봐서는 당췌 이해가 안 가더군요. new 해놓고 delete를 안 한다던지, 내부를 좀 이해할 필요가 있어보였습니다. 제가 테스트해본 바로는 Windows보다는 Linux에서 제대로 동작했던 것으로 기억합니다.
저는 결국 OpenSSL을 가져다 썼습니다.
답변감사합니다
http://kldp.org/node/112320 를 보니까 *.lib 은 VC++용 라이브러리이고... gcc에서는 *.o나 *.a를 사용한다고 하네요.. 일단 애초에 저의 방법은 틀린 방법이었네요 ㅋ
그리고 저도 AES가 필요해서 그런건데.. OpenSSL을 쓰면 AES가 사용 가능한가보죠?
한번 찾아봐야 겠습니다.
답변 고맙습니다.
Qt(mingw32) 에서 Cryptopp 빌드하고 사용하는 방법 (windows7)
해결방법을 찾아서 공유하려 글 남깁니다
http://www.qtcentre.org/threads/28809-Compiling-amp-using-Crypto-with-mingw-version-of-Qt (Compiling & using Crypto++ with mingw version of Qt) 를 참고하였습니다.
사전 작업 : qmake.exe, mingw32-make.exe등의 명령을 사용할 수 있게끔, qt를 설치하고, path를 걸어두어야한다.
1. http://www.cryptopp.com/#download 에서, cryptopp552.zip 를 다운받았다
(2011.5.14 현재 최신버전은 Crypto++ 5.6.1 이며, 테스트해본결과, cryptopp561.zip 역시 아래의 방법으로 빌드가 가능하다.)
2. c:\cryptopp552\ 에 압축을 푼다.
3. C:\cryptopp552\fipstest.cpp 파일을 열어서 'OutputDebugString'를 'OutputDebugStringA'라고 수정한다 (총 3개)
4. C:\cryptopp552\GNUmakefile 를 지운다.
5. cmd 창에서, C:\cryptopp552\ 디렉토리 안에서, qmake -project 를 실행한다
6. 위 작업으로 생성된 cryptopp552.pro 파일을 열어서,
TEMPLATE = app 를 TEMPLATE = lib 로 수정하고
LIBS += -lws2_32 을 마지막줄에 추가한다.
7. 아래의 명령을 차례대로 수행한다
qmake
mingw32-make all (이 작업은 3~10분정도 시간이 걸린다)
8. C:\cryptopp552\release\ 와 C:\cryptopp552\debug\ 디렉토리에 libcryptopp552.a 와 cryptopp552.dll가 생성된다.
9. C:\cryptopp552\release\libcryptopp552.a 를 C:\Qt\4.7.3\lib\ 으로 복사한다. (같은이름의 디렉토리가 C:\Qt\qtcreator-2.1.0\ 에도 존재하는데 헷갈리지 않도록 주의)
10. C:\cryptopp552\release\cryptopp552.dll 을 C:\Qt\4.7.3\bin\ 으로 복사한다. (같은이름의 디렉토리가 C:\Qt\qtcreator-2.1.0\ 에도 존재하는데 헷갈리지 않도록 주의)
11. C:\Qt\4.7.3\include\ 디렉토리에 cryptopp라는 새 디렉토리를 만들고,
아래의 명령어로, *.h파일을 C:\Qt\4.7.3\include\cryptopp\ 로 복사
C:\cryptopp552>copy C:\cryptopp552\*.h C:\Qt\4.7.3\include\cryptopp\
테스트1:
1. qt실행하여, 새프로젝트(Other Project -> Empty Qt Project) cryptopp522test 를 생성
2. 새파일 main.cpp 를 생성하여 아래 소스코드를 입력
3. cryptopp522test.pro 파일을 열어서 아래의 내용처럼 수정
LIBS += -lcryptopp552
CONFIG+=console
SOURCES += \
main.cpp
4. 컴파일 한다음, cmd창을 열어서 테스트
C:\Users\m>cd C:\Users\m\c++qt_test\cryptopp552test-build-desktop\debug
C:\Users\m\c++qt_test\cryptopp552test-build-desktop\debug>cryptopp552test.exe
Input string: Hello World!
MD5: ED076287532E86365E841E92BFC50D8C
테스트2:
1. qt실행하여, 새프로젝트(Other Project -> Empty Qt Project) cryptopp522test2 를 생성
2. 새파일 main.cpp 를 생성하여 아래 소스코드를 입력
3. cryptopp522test2.pro 파일을 열어서 아래의 내용처럼 수정
LIBS += -lcryptopp552
CONFIG+=console
SOURCES += \
main.cpp
4. 컴파일 한다음, cmd창을 열어서 테스트
C:\Users\m>cd C:\Users\m\c++qt_test\cryptopp552test2-build-desktop\debug
(1.jpg 라는 샘플 그림파일을 복사해온다)
C:\Users\m\c++qt_test\cryptopp552test2-build-desktop\debug>cryptopp552test2.exe 1.jpg 2.jpg 3.jpg
Passphrase: a12345
위처럼 실행하면, 1.jpg 원본파일을 "a12345"라는 passphrase로 암호화하여 2.jpg파일을 생성하고,
다시 2.jpg를 복호화한 파일 3.jpg를 생성한다.
이런 기록들이
이런 기록들이 답변을 찾아 해메는 이들에게 소중한 보물이 되겠지요!! 수고하셨습니다.
댓글 달기