Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ Open SSL - Visual Studio

Автор: PAFOS 27.12.2010, 19:36

Добрый день!

Необходимо собрать QT 4.7.X с помощью VS2008 или VS2010 статически + включить OpenSSL в сборку.
пробовал так

configure -release -static -openssl

nmake

при компиляции модуля QtNetwork возникает ошибка а-ля QSslSocket - undeclarated indetifier.

Поковыряв в исходниках понял, что включен макрос QT_NO_OPENSSL...

Неужели нельзя собрать QT+VS+OpenSSL?

З.Ы. сами OpenSSl либы собранные под VS имеются)
З.Ы.Ы. так же при конфигурации необходимо как-то указать пути к статическим либам OpenSSL, как это сделать?

Буду признателен за помощь)

Автор: Rocky 28.12.2010, 9:41

Включен макрос QT_NO_OPENSSL вероятно потому, что в системе не стоит OpenSSL.... Что если сначала поставить его, а потом компилить (если дело только в макросе)? А вариант, когда вместе с программой поставлять еще (кажется 2) библиотеки OpenSSL не устраивает (без включения в сборку)?

Чтобы указать пути к статическим либам.... Можно попробовать в src.pro написать что-то типа

win32 {
    QWTLIB      = qwt5
    QWT_ROOT    = C:\\Qt\\qwt-5.2.1
}
else {
    QWTLIB      = qwt$${SUFFIX_STR}
    QWT_ROOT    = /usr/local/qwt-5.2.1
}

LIBS        += -L$${QWT_ROOT}/lib -l$${QWTLIB}

Ну вот тока для openSSL. Хотя не уверен что это так надо делать...просто мысль)

Автор: PAFOS 28.12.2010, 14:02

В системе стоит OpenSSL) Суть в том, что при динамической линковке модуль QtNetwork при необходимости использования ssl подгружает либы из PATH или из libraryPath(), видимо поэтому там выключен макрос QT_NO_OPENSSL...

Может быть при статической линковке он ищет пути к инклуду и либам на стадии configure и если не находит таковых - включает этот макрос?

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)