crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QSsl QSslSocket
SABROG
  опции профиля:
сообщение 3.7.2009, 16:26
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Расскажите мне, чтобы можно было использовать QSslSocket это надо в обязательном порядке качать OpenSSL? Или в Qt есть внутренняя реализация этой библиотеки?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.7.2009, 17:03
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SABROG @ 3.7.2009, 20:26) *
надо в обязательном порядке качать OpenSSL?
на сколько я знаю, да.

кстати вот
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 3.7.2009, 17:09
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


У меня например сегодняшний снапшот OpenSSL отказывался конфигурироваться в MSYS. Опять начались косяки со слэшами. Пришлось прибегнуть к такому:

export PERL=/c/Perl/bin/perl.exe;
./config
make


Щас буду смотреть собирется или нет.
---
Вроде собралось. Щас буду пересобирать Qt...
---
Еще бы понять какую версию нужно компилить. Вроде .a файлы есть, а .dll нету. Тогда не понятно какую директорию указывать в LIBS.

Сообщение отредактировал SABROG - 3.7.2009, 17:24
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.7.2009, 17:50
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SABROG @ 3.7.2009, 21:09) *
Вроде .a файлы есть, а .dll нету. Тогда не понятно какую директорию указывать в LIBS.
а в которой а-шки лежат. И линкуй с Qt статически (-openssl-linked), тогда и dll'ки не понадобятся.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 3.7.2009, 18:10
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 3.7.2009, 18:50) *
Цитата(SABROG @ 3.7.2009, 21:09) *
Вроде .a файлы есть, а .dll нету. Тогда не понятно какую директорию указывать в LIBS.
а в которой а-шки лежат. И линкуй с Qt статически (-openssl-linked), тогда и dll'ки не понадобятся.

Так и делаю, но пока не всё гладко:

windres -i QtNetworkd_resource.rc -o tmp\obj\debug_shared\QtNetworkd_resource_re
s.o --include-dir=.
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -mthreads -Wl -shared -Wl,--out-implib,c:\SABROG\Qt46\qt\lib\libQtNetworkd4.a
-o ..\..\lib\QtNetworkd4.dll object_script.QtNetworkd.Debug  -L"c:\SABROG\Qt46\
qt\lib" -L"c:\SABROG\openssl-SNAP-20090703" -L"c:\SABROG\Qt46\qt\lib" -lws2_32 t
mp\obj\debug_shared\QtNetworkd_resource_res.o -lssleay32 -llibeay32 -lQtCored4
c:/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot fin
d -lssleay32


И вот это очень настораживает:

qsslsocket_openssl_symbols.cpp
# ifdef Q_OS_WIN
    QLibrary *ssleay32 = new QLibrary(QLatin1String("ssleay32"));
    if (!ssleay32->load()) {
        // Cannot find ssleay32.dll
        delete ssleay32;
        return pair;
    }

    QLibrary *libeay32 = new QLibrary(QLatin1String("libeay32"));
    if (!libeay32->load()) {
        delete ssleay32;
        delete libeay32;
        return pair;
    }

    pair.first = ssleay32;
    pair.second = libeay32;
    return pair;


Явно идет попытка вызвать .dll
---
Мде, таже проблема http://forum.vingrad.ru/topic-246179/view-.../p-1807489.html

Сообщение отредактировал SABROG - 3.7.2009, 18:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.7.2009, 18:29
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SABROG @ 3.7.2009, 22:10) *
Явно идет попытка вызвать .dll
дак это для динамической загрузки. Или нет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 3.7.2009, 18:42
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 3.7.2009, 19:29) *
Цитата(SABROG @ 3.7.2009, 22:10) *
Явно идет попытка вызвать .dll
дак это для динамической загрузки. Или нет?

Я то откуда знаю, указал опцию openssl-linked. Где-то вычитал, что нужно переименовать файлы libcrypto и libssl в libeay32 и libssleay32, на деле пришлось переименовывать файл libeay32 в liblibeay32 и все-равно я получаю это:

Раскрывающийся текст
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -mthreads -Wl -shared -Wl,--out-implib,c:\SABROG\Qt46\qt\lib\libQtNetworkd4.a
-o ..\..\lib\QtNetworkd4.dll object_script.QtNetworkd.Debug  -L"c:\SABROG\Qt46\
qt\lib" -L"c:\SABROG\openssl-SNAP-20090703" -L"c:\SABROG\Qt46\qt\lib" -lws2_32 t
mp\obj\debug_shared\QtNetworkd_resource_res.o -lssleay32 -llibeay32 -lQtCored4
Creating library file: c:\SABROG\Qt46\qt\lib\libQtNetworkd4.a
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(bss_sock.o):bss_sock.c:(.text+0x13
f): undefined reference to `shutdown@8'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(bss_sock.o):bss_sock.c:(.text+0x18
1): undefined reference to `WSASetLastError@4'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(bss_sock.o):bss_sock.c:(.text+0x1a
5): undefined reference to `send@16'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(bss_sock.o):bss_sock.c:(.text+0x24
9): undefined reference to `WSASetLastError@4'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(bss_sock.o):bss_sock.c:(.text+0x26
9): undefined reference to `recv@16'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(bss_sock.o):bss_sock.c:(.text+0x3a
f): undefined reference to `shutdown@8'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xda
0): undefined reference to `CreateDCA@16'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xda
f): undefined reference to `CreateCompatibleDC@4'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xdc
8): undefined reference to `GetDeviceCaps@8'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xde
3): undefined reference to `GetDeviceCaps@8'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xe0
4): undefined reference to `CreateCompatibleBitmap@12'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xe1
b): undefined reference to `SelectObject@8'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xe3
e): undefined reference to `GetObjectA@12'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xee
4): undefined reference to `BitBlt@36'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xef
b): undefined reference to `GetBitmapBits@12'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xf7
0): undefined reference to `SelectObject@8'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xf7
b): undefined reference to `DeleteObject@4'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xf8
8): undefined reference to `DeleteDC@4'
c:\SABROG\openssl-SNAP-20090703/liblibeay32.a(rand_win.o):rand_win.c:(.text+0xf9
5): undefined reference to `DeleteDC@4'
collect2: ld returned 1 exit status
mingw32-make[2]: *** [..\..\lib\QtNetworkd4.dll] Error 1
mingw32-make[2]: Leaving directory `C:/SABROG/Qt46/qt/src/network'
mingw32-make[1]: *** [debug-all] Error 2
mingw32-make[1]: Leaving directory `C:/SABROG/Qt46/qt/src/network'
mingw32-make: *** [sub-network-make_default-ordered] Error 2


Явно не хватает прилинковки системных библиотек... Еще не решил как поступить, толи makefile исправить, толи попробовать собрать OpenSSL как shared.

Сообщение отредактировал SABROG - 3.7.2009, 19:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.7.2009, 18:51
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


у меня были похожие ошибки и действия при первой попытке собрать драйвер QIbase.

Оказалось, что reimplement, или как он там, ненадобыло запускать, хотя все так и рекомендовали.

Ты случаем его не запускал?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 3.7.2009, 19:05
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Нет, не запускал. Сейчас попробовал заменить в файле .qmake.cache, что появляется после configure это:

OPENSSL_LIBS    = -lssleay32 -llibeay32


на это:

OPENSSL_LIBS    = -lssl -lcrypto -lgdi32 -lwsock32


компиляция пошла дальше. Посмотрим, что будет дальше. Но это наверно уже до понедельника, через 10 минут уходить с работы.

Сообщение отредактировал SABROG - 3.7.2009, 19:07
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 6.7.2009, 11:32
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Ура собралось всё как linked, ни одной лишней .dll. Проверил на двух примерах, вроде всё пашет:

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.6.2024, 14:55