2

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 by 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 tried with cmake-gui as well. 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 both metod 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 dll's and add it to project.

Tree of folder where build content appeared looks like this

Updated: 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-make2: * [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-make1: * [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.

but then it

I would be grateful for any help with this problem.

MyWay
  • 1,011
  • 2
  • 14
  • 35

0 Answers0