Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: dmitriiv84 от Май 16, 2014, 09:47



Название: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 16, 2014, 09:47
Здравствуйте, нужна помощь в статической сборке QCA. Уже 4 дня ищу в интернете хоть какую-то информацию по этому вопросу, но ничего подходящего так и не нашел. Может кто-то знает как собрать или хотя бы подскажите в каком направлении рыть. Моя версия Qt  5.3 Windows 7 x86. Буду рад любой помощи. Заранее Всем спасибо.


Название: Re: Нужна помощь - QCA
Отправлено: OKTA от Май 16, 2014, 10:10
Собирал не раз QCA, но всегда dynamic. Статическая сборка не давалась. Точнее давалась, но собиралось не все и был ограниченный набор алгоритмов (хотя пробовал один раз и очень давно и разбираться не было желания, т.к. dynamic удобнее был для меня, как ни крути). Если Qt уже в статике, то и QCA будет в статике, судя по строчкам в CMakeLists:
Код:
# QCA can be shared but plugins will be static
# if Qt is static.
if(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC)
  set(STATIC_PLUGINS ON)
  add_definitions(-DQT_STATICPLUGIN)
  set(PLUGIN_TYPE "STATIC")
else(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC)
  set(PLUGIN_TYPE "MODULE")
endif(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC)

Хотя стоит просто попробовать поменять

option(BUILD_SHARED_LIBS "Build shared library" ON) на OFF и собирать как есть.

Интересно услышать результаты  ;)

Если нужны более подробные шаги для сборки, то примерно вот:
1. Хватаем git://anongit.kde.org/qca.git
2. Хватаем CMake
3. Можно и Doxygen схватить для документации
4. Хватаем OpenSSL (пакет для разработчиков)
5. Открываем CMakeLists.txt в креаторе (мне так лично удобнее было)
6. Запускаем CMake  - при этом, он попросит указать путь до CMake, который должен был быть уже установлен в пункте 2.
7. Запускаем make
8. Ну, собственно, и все, дальше пользуемся dll-ками  :)

Сегодня вечером попробую сам static сделать.


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 16, 2014, 10:15
Qt я собрал статически , сейчас попробую сделать как вы говорите и отпишусь.


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 16, 2014, 10:29
[ 50%] Building CXX object unittest/base64unittest/CMakeFiles/base64unittest.dir/base64unittest.cpp.obj
Linking CXX executable ..\..\bin\base64unittest.exe
CMakeFiles\base64unittest.dir/objects.a(base64unittest.cpp.obj):base64unittest.cpp:(.text$_ZN30Staticqca_loggerPluginInstanceC1Ev[__ZN30Staticqca_loggerPluginInstanceC1Ev]+0xa): undefined reference to `qt_static_plugin_qca_logger()'
CMakeFiles\base64unittest.dir/objects.a(base64unittest.cpp.obj):base64unittest.cpp:(.text$_ZN28Staticqca_osslPluginInstanceC1Ev[__ZN28Staticqca_osslPluginInstanceC1Ev]+0xa): undefined reference to `qt_static_plugin_qca_ossl()'
C:/Qt/Tools/mingw482_32/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/bin/ld.exe: CMakeFiles\base64unittest.dir/objects.a(base64unittest.cpp.obj): bad reloc address 0xa in section `.text$_ZN28Staticqca_osslPluginInstanceC1Ev[__ZN28Staticqca_osslPluginInstanceC1Ev]'
collect2.exe: error: ld returned 1 exit status
unittest\base64unittest\CMakeFiles\base64unittest.dir\build.make:102: recipe for target 'bin/base64unittest.exe' failed
mingw32-make[2]: *** [bin/base64unittest.exe] Error 1
CMakeFiles\Makefile2:558: recipe for target 'unittest/base64unittest/CMakeFiles/base64unittest.dir/all' failed
mingw32-make[1]: *** [unittest/base64unittest/CMakeFiles/base64unittest.dir/all] Error 2
Makefile:126: recipe for target 'all' failed
mingw32-make: *** [all] Error 2
10:24:27: Процесс «C:\Qt\Tools\mingw482_32\bin\mingw32-make.exe» завершился с кодом 2.
Ошибка при сборке/установке проекта qca (комплект: Desktop Qt 5.3.0 MinGW 32bit)
Во время выполнения этапа «Сборка»
10:24:27: Прошло времени: 03:40.


Есть еще какие-то варианты?


Название: Re: Нужна помощь - QCA
Отправлено: OKTA от Май 16, 2014, 10:35
Попробуй отключить сборку юниттестов.  option(BUILD_TESTS "Create test" OFF)


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 16, 2014, 16:08
Попробуй отключить сборку юниттестов.  option(BUILD_TESTS "Create test" OFF)

Не помогло.  :(



Название: Re: Нужна помощь - QCA
Отправлено: OKTA от Май 16, 2014, 16:17
Вечером попробую сегодня. Отпишусь.


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 16, 2014, 18:47
После долгих мучений все таки вроде собрал. И появилась другая проблема -

 ошибка: cannot find -lqca
 ошибка collect2.exe: error: ld returned  1 exit status

 ???


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 17, 2014, 10:22
Вечером попробую сегодня. Отпишусь.

Как успехи?


Название: Re: Нужна помощь - QCA
Отправлено: OKTA от Май 19, 2014, 09:14
Прихворал, не было сил попробовать =(
lqca не может найти? А в pro файле прописал путь до libqca.a?


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 19, 2014, 14:39
Прихворал, не было сил попробовать =(
lqca не может найти? А в pro файле прописал путь до libqca.a?

У меня нету файла libqca.a есть только libqca.dll.a пробовал указывать путь к нему , тоже самое. Пробовал переименовать его в libqca.a выдает - "Программа завершилась крахом"


Название: Re: Нужна помощь - QCA
Отправлено: OKTA от Май 19, 2014, 15:50
постараюсь посмотреть сегодня вечером. В динамике он тоже .dll.а генерирует. не помню, как укротил.


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 19, 2014, 15:54
постараюсь посмотреть сегодня вечером. В динамике он тоже .dll.а генерирует. не помню, как укротил.
Буду ждать , а пока жду попробую сам разобраться.


Название: Re: Нужна помощь - QCA
Отправлено: OKTA от Май 19, 2014, 21:25
Так, а куда копировал либы скомпиленные и что добавлял в файл проекта помимо либы? CONFIG += crypto делал? (если нет, скажу че куда кинуть надо).


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 19, 2014, 22:26
Статическая сборка Qt расположена у меня по пути - C:\Qt\Static\5.2.1

QCA prefix is C:/Qt/Static/5.2.1/
Plugins will be installed to C:/Qt/Static/5.2.1/plugins/crypto
Binary will be installed to C:/Qt/Static/5.2.1/bin
Library will be installed to C:/Qt/Static/5.2.1/lib
Feature file will be installed to C:/Qt/Static/5.2.1/mkspecs/features
Public headers will be installed to C:/Qt/Static/5.2.1/include
Private headers will be installed to C:/Qt/Static/5.2.1/include
Documentation will be installed to C:/Qt/Static/5.2.1/doc/html/qca
Man page will be installed to C:/Qt/Static/5.2.1/man
Pkg-config file will be installed to C:/Qt/Static/5.2.1/lib/pkgconfig

В файле проекта добавляю -
CONFIG += crypto
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/C:/Qt/Static/5.2.1/lib/ -llibqca


INCLUDEPATH += $$PWD/C:/Qt/Static/5.2.1/include
DEPENDPATH += $$PWD/C:/Qt/Static/5.2.1/include


В ответ получаю -
Запускается D:\Projects\DBTest\release\DBTest.exe...
Программа неожиданно завершилась.
D:\Projects\DBTest\release\DBTest.exe завершился крахом


Название: Re: Нужна помощь - QCA
Отправлено: OKTA от Май 19, 2014, 22:35
проверил, в crypto лежат либы? у меня было пусто там по какой-то неизвестной причине))
Либу в про файле я добавлял c .dll, как файл и есть - не переименовывал.


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 19, 2014, 23:08
Напиши что у тебя в файле pro и куда установлены либы. Я уже не знаю что пробовать. Уже разные варианты перепробовал и результата ноль. >:(


Название: Re: Нужна помощь - QCA
Отправлено: OKTA от Май 20, 2014, 17:34
Хм, да, не идет статика чего-то..
Словно option(BUILD_SHARED_LIBS "Build shared library" ON) ни на что не влияет вообще  ???


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 20, 2014, 17:38
Вот и я уже неделю играюсь, и никак.  >:(


Название: Re: Нужна помощь - QCA
Отправлено: OKTA от Май 20, 2014, 17:52
Попробовал добавить set(LIBRARY_TYPE "STATIC") в CmakeLists.txt, но получил 1000 ворнингов и 4 ошибки.. Все по поводу dllimport и dll linkage. попробуй тоже, мало ли..


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 20, 2014, 17:54
Подробнее можно


Название: Re: Нужна помощь - QCA
Отправлено: OKTA от Май 20, 2014, 20:26
set(LIBRARY_TYPE "STATIC") добавляешь в CMakeLists.txt, ставишь off в опции shared_library и компилируешь) куда подробнее?))


Название: Re: Нужна помощь - QCA
Отправлено: dmitriiv84 от Май 22, 2014, 23:31
Куча warning-ов и ошибок.