qca how to generate dll's needed for project
-
I need generate dll's for my project to use Qt Cryptographic Architecture, I try to go step by step as this short tutorial says. So I started with adding cmake to qt.
Then downloaded
qca
fromgit://anongit.kde.org/qca.git
, cause this svn in the post was outdated. After that I tookextra-cmake-modules
fromgit://anongit.kde.org/extra-cmake-modules
.Now is time for compile it, I opened in qt cmakelist.txt from
extra-cmake-modules
, the CmakeWizard appears and I choose the MinGw Generator without any parameters.The output looks like this:
-- The C compiler identification is GNU 4.8.2 -- Check for working C compiler: C:/Qt/Qt5.3.1/Tools/mingw482_32/bin/gcc.exe -- Check for working C compiler: C:/Qt/Qt5.3.1/Tools/mingw482_32/bin/gcc.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Looking for Sphinx Documentation Builder... -- Sphinx Documentation Builder not found - documentation will not be built (see http://sphinx-doc.org/) -- Configuring done -- Generating done -- Build files have been written to: G:/qca_new/extra_cmake_m-build
In next step i opened the
qca
in qt. The CMake wizard appeard one more time and as tutorial said I added this argument:-DECM_MODULE_PATH=G:\qca_new\extra_cmake_m-build
The output looks as follows:
CMake Warning:
Manually-specified variables were not used by the project:ECM_MODULE_PATH
Feature file will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/mkspecs/features Documentation will be installed to C:/Qt/Qt5.3.1/Docs/Qt-5.3/html/qca Man page will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/man Pkg-config file will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/lib/pkgconfig
QCA prefix is C:/Qt/Qt5.3.1/5.3/mingw482_32 Plugins will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/plugins Binary will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/bin Library will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/lib Public headers will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/include/Qca-qt5 Private headers will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/include/Qca-qt5 [31m !!!!!!!!!!!!!!!!!!!!!ATTENTION!!!!!!!!!!!!!!!!!!!!!! !! QCA will be installed in Qt prefix !! !! If you want to install in /usr/local !! !! you MUST explicity define CMAKE_INSTALL_PREFIX !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [0m
qca-gcrypt off qca-gnupg on qca-logger on qca-nss off qca-ossl on qca-pkcs11 off qca-softstore on Plugins: qca-botan off qca-cyrus-sasl off
CMake Warning at plugins/qca-ossl/CMakeLists.txt:25 (message): qca-ossl will be compiled without AES CTR mode encryption support
CMake Warning at plugins/qca-ossl/CMakeLists.txt:18 (message): qca-ossl will be compiled without MD2 digest algorithm support
-- The C compiler identification is GNU 4.8.2 -- The CXX compiler identification is GNU 4.8.2 -- Check for working C compiler: C:/Qt/Qt5.3.1/Tools/mingw482_32/bin/gcc.exe -- Check for working C compiler: C:/Qt/Qt5.3.1/Tools/mingw482_32/bin/gcc.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: C:/Qt/Qt5.3.1/Tools/mingw482_32/bin/g++.exe -- Check for working CXX compiler: C:/Qt/Qt5.3.1/Tools/mingw482_32/bin/g++.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) -- Building with Qt5 support -- Installed package is NOT relocatable -- Checking for certstore.. -- Using built in certstore. -- certstore path: G:/qca_new/qca/certs/rootcerts.pem -- Looking for include file sys/filio.h -- Looking for include file sys/filio.h - not found -- Performing Test MLOCK_TAKES_VOID -- Performing Test MLOCK_TAKES_VOID - Failed -- mlock(2) does not take a void * -- Found OpenSSL: C:/Program Files/OpenVPN/bin/ssleay32.dll;C:/Program Files/OpenVPN/bin/libeay32.dll (found version "0.9.8h") -- Looking for EVP_md2 -- Looking for EVP_md2 - not found -- Looking for EVP_aes_128_ctr -- Looking for EVP_aes_128_ctr - not found -- Configuring done -- Generating done -- Build files have been written to: G:/qca_new/qca-build
And after that I'm stuck. I try to build project qca but I get the errors
...\qca\plugins\qca-ossl\qca-ossl.cpp:5808: error: 'SSL_SESSION_get_compress_id' was not declared in this scope sessInfo.isCompressed = (0 != SSL_SESSION_get_compress_id(ssl->session));
I searched for it and I found that somebody already created ticket connected with this issue. When this path didn't give me needed result, I went other way.
I commented some code in virtual method to avoid error during bulding.
Right now I can build 3 dll's:-
libqca-qt5,
-
libqca-logger,
-
libqca-gnupg,
and when qt tries to build libqca-ossl.dll the error apears:C:/Program Files/OpenVPN/bin/ssleay32.dll: file not recognized: File format not recognized collect2.exe: error: ld returned 1 exit status plugins\qca-ossl\CMakeFiles\qca-ossl.dir\build.make:104: recipe for target 'lib/qca-qt5/crypto/libqca-ossl.dll' failed mingw32-make[2]: *** [lib/qca-qt5/crypto/libqca-ossl.dll] Error 1 CMakeFiles\Makefile2:395: recipe for target 'plugins/qca-ossl/CMakeFiles/qca-ossl.dir/all' failed mingw32-make[1]: *** [plugins/qca-ossl/CMakeFiles/qca-ossl.dir/all] Error 2 Makefile:137: recipe for target 'all' failed mingw32-make: *** [all] Error 2 15:17:12: The process "C:\Qt\Qt5.3.1\Tools\mingw482_32\bin\mingw32-make.exe" exited with code 2.
I'm curious why it goes to openVpn folder at all.
I tried with cmake-gui as well like in this tutorial.
My parameters are source code (this qca repo which I downloaded from git) and my path to folder where binaries should be build. Configure and generate clicked and this is the output.Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) Building with Qt5 support Installed package is NOT relocatable Checking for certstore.. Using built in certstore. certstore path: G:/qca_new/qca/certs/rootcerts.pem mlock(2) does not take a void * CMake Warning at plugins/qca-ossl/CMakeLists.txt:18 (message): qca-ossl will be compiled without MD2 digest algorithm support
CMake Warning at plugins/qca-ossl/CMakeLists.txt:25 (message): qca-ossl will be compiled without AES CTR mode encryption support
Plugins: qca-botan off qca-cyrus-sasl off qca-gcrypt off qca-gnupg on qca-logger on qca-nss off qca-ossl on qca-pkcs11 off qca-softstore on
QCA prefix is C:/Qt/Qt5.3.1/5.3/mingw482_32 Plugins will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/plugins Binary will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/bin Library will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/lib Public headers will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/include/Qca-qt5 Private headers will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/include/Qca-qt5 Feature file will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/mkspecs/features Documentation will be installed to C:/Qt/Qt5.3.1/Docs/Qt-5.3/html/qca Man page will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/man Pkg-config file will be installed to C:/Qt/Qt5.3.1/5.3/mingw482_32/lib/pkgconfig
Configuring done Generating done
After that I searched for any dll's but nothing appears, this both method generated build folders with content,but I don't know what to do to get all dll's and add it to project.
Tree of folder where build content appeared looks like this
I would be grateful for any help in solving this problem.
-
-
Hi,
One fast way to build QCA with your Qt version is to build QCA using Qt Creator, you'll have everything setup correctly.
If you want the features using OpenSSL you also need to install OpenSSL first.
Hope it helps