Como adicionar a biblioteca Crypto ++ ao projeto Qt
Baixei a fonte Crypto ++ e compilei o projeto cryptlib no Visual Studio 2013 e adicionei o arquivo .lib gerado ao meu projeto Qt, o que fez com que meu arquivo .pro se parecesse com o seguinte:
QT += core gui
QT += sql
greaterThan(QT_MAJOR_VERSION, 4):QT += widgets
TARGET = untitled
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h \
databasecontrol.h \
test.h
FORMS += mainwindow.ui
win32:CONFIG(release, debug|release): LIBS += -L$PWD/ -lcryptlib
else:win32:CONFIG(debug, debug|release): LIBS += -L$PWD/ -lcryptlibd
else:unix: LIBS += -L$PWD/ -lcryptlib
INCLUDEPATH += $PWD/
DEPENDPATH += $PWD/
win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $PWD/libcryptlib.a
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $PWD/libcryptlibd.a
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $PWD/cryptlib.lib
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $PWD/cryptlibd.lib
else:unix: PRE_TARGETDEPS += $PWD/libcryptlib.a
Imediatamente após adicionar esta biblioteca ao projeto, eu a construo e obtenho o seguinte erro:
:-1: error: No rule to make target 'C:/Users/Special Services/WorkOrder/libcryptlibd.a', needed by 'debug\untitled.exe'. Stop.
Acredito que entendi que o erro está me dizendo que preciso de uma linha adicional em que todos oselse:win32
linhas estão sobDEPENDPATH
... ou é porque as linhas adicionadas usam$$PWD
, esse não é um comando Unix? Eu olhei em volta para outras instâncias desse erro e estou bastante certo de que o problema está em algo no arquivo .pro aqui.
EDITAR:
Eu decidi adotar uma abordagem diferente. Livrei-me de qualquer coisa que importasse uma biblioteca adicionada ao meu arquivo .pro e, em vez disso, coloquei esta linha de código em seu lugar:
win32:LIBS += C:\Qt\5.2.1\mingw48_32\include\cryptopp\Win32\Output\Debug\cryptlib.lib
(O caminho para o arquivo cryptlib.lib)
Isso construiu muito bem. Verifiquei se todos os arquivos de cabeçalho do cryptopp estavam no meu diretório de inclusão,C:\Qt\5.2.1\mingw48_32\include\cryptopp
Eu tentei incluir um arquivo, com#include <cryptopp/aes.h>
e construiu bem. Na primeira vez que criei, havia mais de 40 avisos, mas na segunda vez, criei sem nenhum.