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 from git://anongit.kde.org/qca.git, cause this svn in the post was outdated. After that I took extra-cmake-modules from git://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.


  • Lifetime Qt Champion

    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


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.