Russian Qt Forum
Ноябрь 26, 2024, 02:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Нужна помощь - QCA  (Прочитано 12466 раз)
dmitriiv84
Гость
« : Май 16, 2014, 09:47 »

Здравствуйте, нужна помощь в статической сборке QCA. Уже 4 дня ищу в интернете хоть какую-то информацию по этому вопросу, но ничего подходящего так и не нашел. Может кто-то знает как собрать или хотя бы подскажите в каком направлении рыть. Моя версия Qt  5.3 Windows 7 x86. Буду рад любой помощи. Заранее Всем спасибо.
Записан
OKTA
Гость
« Ответ #1 : Май 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 сделать.
« Последнее редактирование: Май 16, 2014, 10:21 от OKTA » Записан
dmitriiv84
Гость
« Ответ #2 : Май 16, 2014, 10:15 »

Qt я собрал статически , сейчас попробую сделать как вы говорите и отпишусь.
Записан
dmitriiv84
Гость
« Ответ #3 : Май 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.


Есть еще какие-то варианты?
Записан
OKTA
Гость
« Ответ #4 : Май 16, 2014, 10:35 »

Попробуй отключить сборку юниттестов.  option(BUILD_TESTS "Create test" OFF)
Записан
dmitriiv84
Гость
« Ответ #5 : Май 16, 2014, 16:08 »

Попробуй отключить сборку юниттестов.  option(BUILD_TESTS "Create test" OFF)

Не помогло.  Грустный

« Последнее редактирование: Май 16, 2014, 16:11 от dmitriiv84 » Записан
OKTA
Гость
« Ответ #6 : Май 16, 2014, 16:17 »

Вечером попробую сегодня. Отпишусь.
Записан
dmitriiv84
Гость
« Ответ #7 : Май 16, 2014, 18:47 »

После долгих мучений все таки вроде собрал. И появилась другая проблема -

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

 Непонимающий
Записан
dmitriiv84
Гость
« Ответ #8 : Май 17, 2014, 10:22 »

Вечером попробую сегодня. Отпишусь.

Как успехи?
Записан
OKTA
Гость
« Ответ #9 : Май 19, 2014, 09:14 »

Прихворал, не было сил попробовать =(
lqca не может найти? А в pro файле прописал путь до libqca.a?
Записан
dmitriiv84
Гость
« Ответ #10 : Май 19, 2014, 14:39 »

Прихворал, не было сил попробовать =(
lqca не может найти? А в pro файле прописал путь до libqca.a?

У меня нету файла libqca.a есть только libqca.dll.a пробовал указывать путь к нему , тоже самое. Пробовал переименовать его в libqca.a выдает - "Программа завершилась крахом"
Записан
OKTA
Гость
« Ответ #11 : Май 19, 2014, 15:50 »

постараюсь посмотреть сегодня вечером. В динамике он тоже .dll.а генерирует. не помню, как укротил.
Записан
dmitriiv84
Гость
« Ответ #12 : Май 19, 2014, 15:54 »

постараюсь посмотреть сегодня вечером. В динамике он тоже .dll.а генерирует. не помню, как укротил.
Буду ждать , а пока жду попробую сам разобраться.
Записан
OKTA
Гость
« Ответ #13 : Май 19, 2014, 21:25 »

Так, а куда копировал либы скомпиленные и что добавлял в файл проекта помимо либы? CONFIG += crypto делал? (если нет, скажу че куда кинуть надо).
Записан
dmitriiv84
Гость
« Ответ #14 : Май 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 завершился крахом
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.103 секунд. Запросов: 21.