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.