QCA для QT5 не может генерировать DLL

Мне нужно сгенерировать dll для моего проекта, чтобы использовать Qt Cry ptographic Architecture, я стараюсь идти шаг за шагом, как говорится в этом коротком руководстве. Итак, я начал с добавления cmake в qt.

Потом скачал qca от git://anongit.kde.org/qca.git потому что этот свн в посте был устаревшим. После этого я взял extra-cmake-modules от git://anongit.kde.org/extra-cmake-modules,

Теперь пришло время для его компиляции, я открыл qt cmakelist.txt из extra-cmake-modules, появляется CmakeWizard, и я выбираю Генератор MinGw без каких-либо параметров.

Вывод выглядит так:

    -- 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

На следующем шаге я открыл qca в кв. Мастер CMake появляется еще раз, и, как говорилось в руководстве, я добавил этот аргумент:

-DECM_MODULE_PATH=G:\qca_new\extra_cmake_m-build

Вывод выглядит следующим образом:

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

И после этого я застрял. Я пытаюсь построить проект QCA, но я получаю ошибки

...\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));

Я искал его и обнаружил, что кто-то уже создал билет, связанный с этой проблемой. Когда этот путь не дал мне нужного результата, я пошел другим путем.

Я пробовал с помощью cmake-gui. Мои параметры - это исходный код (это репозиторий qca, который я скачал с git) и мой путь к папке, в которой должны быть собраны двоичные файлы. Настроить и сгенерировать нажал, и это выход.

 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

После обоих методов я искал какие-либо библиотеки DLL, но ничего не появлялось, оба метода генерировали папки компоновки с содержимым, но я не знаю, что делать, чтобы получить библиотеки DLL и добавить их в проект.

Дерево папки, в которой появился сборочный контент, выглядит следующим образом

Обновлено: я прокомментировал некоторый код в виртуальном методе, чтобы избежать ошибок во время сборки. Прямо сейчас я могу построить 3 DLL:

  • libqca-qt5,
  • libqca-регистратор,
  • libqca-gnupg, и когда qt пытается собрать libqca-ossl.dll, появляется ошибка:

    C: / Program Files / OpenVPN / bin / ssleay32.dll: файл не распознан: файл
    формат не распознан collect2.exe: ошибка: ld вернул 1 плагин состояния выхода \qca-ossl\CMakeFiles\qca-ossl.dir\build.make:104: рецепт для целевой библиотеки lib/qca-qt5/crypto/libqca-ossl.dll'не удалось mingw32-make 2: * [lib / qca-qt5 / cry pto / libqca-ossl.dll] Ошибка 1 CMakeFiles\Makefile2:395: рецепт для целевых плагинов / qca-ossl / CMakeFiles / qca-ossl.dir / all ' fail mingw32 -make 1: * [plugins / qca-ossl / CMakeFiles / qca-ossl.dir / all] Ошибка 2 Makefile:137: рецепт для цели'all'не удалось mingw32-make: *** [all] Ошибка 2 15:17:12: процесс "C:\Qt\Qt5.3.1\Tools\mingw482_32\bin\mingw32-make.exe" завершен с кодом 2.

Мне любопытно, почему он вообще идет в папку openVpn.

но тогда это

Буду благодарен за любую помощь с этой проблемой.

0 ответов

Другие вопросы по тегам