Как добавить библиотеку Crypto ++ в проект Qt
Я скачал исходники Crypto ++ и скомпилировал проект cryptlib в Visual Studio 2013, а затем добавил сгенерированный файл .lib в свой проект Qt, в результате чего мой файл .pro выглядел так:
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
Сразу после добавления этой библиотеки в проект, я создаю ее и получаю следующую ошибку:
:-1: error: No rule to make target 'C:/Users/Special Services/WorkOrder/libcryptlibd.a', needed by 'debug\untitled.exe'. Stop.
Я считаю, что понимаю, что ошибка говорит мне, что мне нужна дополнительная строка, где всеelse:win32
линии находятся подDEPENDPATH
... или потому что добавленные строки используют$$PWD
разве это не команда Unix? Я посмотрел вокруг на другие случаи этой ошибки, и я вполне уверен, что проблема с чем-то в файле .pro здесь.
РЕДАКТИРОВАТЬ:
Я решил пойти другим путем. Я избавился от всего, что импортировало библиотеку, добавленную в мой файл .pro, и вместо этого просто поместил эту строку кода на свое место:
win32:LIBS += C:\Qt\5.2.1\mingw48_32\include\cryptopp\Win32\Output\Debug\cryptlib.lib
(Путь к файлу cryptlib.lib)
Это построено просто отлично. Я убедился, что все заголовочные файлы cryptopp были в моем каталоге include,C:\Qt\5.2.1\mingw48_32\include\cryptopp
Затем я попытался включить файл, с#include <cryptopp/aes.h>
и он построен хорошо. В первый раз, когда я построил, было более 40 предупреждений, но во второй раз я построил без каких-либо.