So fügen Sie dem Qt-Projekt eine Crypto ++ - Bibliothek hinzu
Ich habe die Crypto ++ - Quelle heruntergeladen und das Cryptlib-Projekt in Visual Studio 2013 kompiliert. Anschließend habe ich meinem Qt-Projekt die generierte LIB-Datei hinzugefügt. Dadurch sah meine PRO-Datei folgendermaßen aus:
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
Unmittelbar nach dem Hinzufügen dieser Bibliothek zum Projekt erstelle ich sie und erhalte die folgende Fehlermeldung:
:-1: error: No rule to make target 'C:/Users/Special Services/WorkOrder/libcryptlibd.a', needed by 'debug\untitled.exe'. Stop.
Ich glaube, ich verstehe, dass der Fehler mir sagt, dass ich eine zusätzliche Zeile brauche, in der alleelse:win32
Linien sind unterDEPENDPATH
... oder liegt es daran, dass die hinzugefügten Zeilen verwendet werden$$PWD
ist das nicht ein Unix-Befehl? Ich habe mich in anderen Fällen umgesehen und bin mir ziemlich sicher, dass das Problem in der .pro-Datei liegt.
BEARBEITEN:
Ich habe mich für einen anderen Ansatz entschieden. Ich habe alles beseitigt, was durch den Import einer Bibliothek zu meiner .pro-Datei hinzugefügt wurde, und stattdessen einfach diese Codezeile an ihre Stelle gesetzt:
win32:LIBS += C:\Qt\5.2.1\mingw48_32\include\cryptopp\Win32\Output\Debug\cryptlib.lib
(Der Pfad zur Datei cryptlib.lib)
Das hat prima funktioniert. Ich habe sichergestellt, dass sich alle cryptopp-Header-Dateien in meinem include-Verzeichnis befinden.C:\Qt\5.2.1\mingw48_32\include\cryptopp
Ich habe dann versucht, eine Datei mit aufzunehmen#include <cryptopp/aes.h>
und es hat gut gebaut. Das erste Mal, als ich baute, gab es mehr als 40 Warnungen, aber das zweite Mal, als ich baute, baute es ohne irgendwelche.