c++ - How to add Crypto++ library to Qt project -


i downloaded crypto++ source , compiled cryptlib project in visual studio 2013, , added generated .lib file qt project, made .pro file this:

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 

immediately after adding library project, build , following error:

:-1: error: no rule make target 'c:/users/special services/workorder/libcryptlibd.a', needed 'debug\untitled.exe'. stop.

i believe understand error telling me need additional line of else:win32 lines under dependpath... or because lines added use $$pwd, isn't unix command? i've looked around @ other instances of error , i'm problem in .pro file here.

edit:

i decided take different approach. got rid of importing library added .pro file, , instead put line of code in place:

win32:libs += c:\qt\5.2.1\mingw48_32\include\cryptopp\win32\output\debug\cryptlib.lib (the path cryptlib.lib file)

this built fine. made sure of cryptopp header files in include directory, c:\qt\5.2.1\mingw48_32\include\cryptopp

i tried include file, #include <cryptopp/aes.h> , built fine. first time built, there 40+ warnings, second time built, built without any.

win32-g++:config(release, debug|release): pre_targetdeps += $$pwd/libcryptlib.a else:win32-g++:config(debug, debug|release): pre_targetdeps += $$pwd/libcryptlibd.a 

on windows under visual studio, name of crypto++ library cryptlib.lib, not libcryptlib.a. if used cygwin (which don't believe did), name would libcryptopp.a.

the libcryptlibd.a (notice addition of d) not correct. stands 'debug', , used years ago in visual studio 5.0/6.0 days. based on compiling , integrating crypto++ microsoft visual c++ environment. if renamed win32/debug/cryptlib.lib win32/debug/cryptlibd.lib, ok if paths ok.

i think recommended way of doing things use cryptlib.lib library (same name everywhere), , change linker paths based on configuration. paths be:

  • win32, debug: <crypto++ dir>/win32/debug/
  • win64, debug: <crypto++ dir>/x64/debug/
  • win32, release: <crypto++ dir>/win32/release/
  • win64, release: <crypto++ dir>/x64/release/

here's screen capture of adding cryptlib.lib under visual studio. notice applies configurations:

enter image description here

and here's how change linker paths visual studio finds proper cryptlib.lib:

enter image description here

in above, cryptopp_lib32 environmental variable value c:\users\special services\crypto++\win32\. similarly, cryptopp_lib64 c:\users\special services\crypto++\x64\

unfortunately, don't know how these things under qtcreator.


Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -