Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent) / 11 сообщений из 11, страница 1 из 1
20.02.2016, 02:50
    #39175726
AlexMain
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
Qt на Windows 7, компилятор VS2013 64бит
Пытаюсь в Qt скомпилировать диспетчер для QAbstractEventDispatcher на основе Libevent, код отсюда https://github.com/sjinks/qt_eventdispatcher_libevent

получаю ошибку

Код: plaintext
1.
2.
3.
event.lib(evutil_rand.obj):-1: ошибка: LNK2019: unresolved external symbol __imp_CryptAcquireContextA referenced in function arc4_seed_win32
event.lib(evutil_rand.obj):-1: ошибка: LNK2019: unresolved external symbol __imp_CryptGenRandom referenced in function arc4_seed_win32
..\lib\eventdispatcher_libevent.dll:-1: ошибка: LNK1120: 2 unresolved externals



исходники Libevent взял тут https://github.com/libevent/libevent, собрал CMake'ом проект для VS2013 с OpenSSL (OpenSSL не собирал, скачал установщик для венды), в VS2013 проект скомпилировал 64 бит, получил 3 либы - event.lib, event_core.lib, event_extra.lib, кинул их в F:\Programs\Qt\Qt5.5.1\5.5\msvc2013_64\lib
qt_eventdispatcher_libevent прошел qmake'ом потом nmake'ом

все build делал release

что я не сделал и/или сделал не правильно?
что это за функция arc4_seed_win32 как ее найти в исходниках libevent'a?
чувствую проблема в этих цифрах 32 в конце имени функции
на одном испанском форуме прочитал что arc4_seed_win32 заменена на arc4_seed_win, но что делать дальше хз

мне это криптография нафиг не нада, но если собрать libevent без OpenSSL, то ошибок LNK2019 больше 30

Люди ПАМАГИТЕ
...
Рейтинг: 0 / 0
20.02.2016, 11:33
    #39175901
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
AlexMain,
скорее всего это проблемы конфигурации этой библиотеки для сборки, но это тебе вряд ли кто-то подскажет, это лучше всего смотреть внимательно документацию пол этой библиотеке, и правильно ее настраивать.
...
Рейтинг: 0 / 0
20.02.2016, 11:47
    #39175916
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
AlexMain,

Ищи в какой DLL определены CryptGenRandom и CryptAcquireContext
...
Рейтинг: 0 / 0
20.02.2016, 12:15
    #39175945
AlexMain
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
SiemarglAlexMain,

Ищи в какой DLL определены CryptGenRandom и CryptAcquireContext

Судя по сообщению, они определены в event.lib, я могу найти их в исходниках этой либы, но что делать дальше?
...
Рейтинг: 0 / 0
20.02.2016, 14:23
    #39176071
AlexMain
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
пересобрал libevent из исходников http://libevent.org/ взял последний стаб. релиз 2.022 (до этого собирал бетту 2.1.5), библиотеки собрались с другими именами - libevent.lib, libevent_core.lib, libevent_extra.lib, что вообщем то соответствует докам.

Теперь пересобираю qt_eventdispatcher_libevent для этих либ, но линкер Qt линкует ее с event.lib, вместо libevent.lib

Код: plaintext
1.
:-1: ошибка: LNK1181: cannot open input file 'event.lib'



где указывается библиотека?

вот pro

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
QT      -= gui
TARGET   = eventdispatcher_libevent
TEMPLATE = lib
DESTDIR  = ../lib
CONFIG  += staticlib create_prl precompile_header

HEADERS += \
	eventdispatcher_libevent.h \
	eventdispatcher_libevent_p.h \
	eventdispatcher_libevent_config.h \
	eventdispatcher_libevent_config_p.h \
	libevent2-emul.h \
	qt4compat.h \
	tco.h \
	tco_impl.h \
	common.h

SOURCES += \
	eventdispatcher_libevent.cpp \
	eventdispatcher_libevent_p.cpp \
	timers_p.cpp \
	socknot_p.cpp \
	eventdispatcher_libevent_config.cpp

PRECOMPILED_HEADER = common.h

headers.files = eventdispatcher_libevent.h eventdispatcher_libevent_config.h

unix {
	CONFIG += create_pc

	system('cc -E $$PWD/conftests/eventfd.h -o /dev/null 2> /dev/null') {
		SOURCES += tco_eventfd.cpp
	}
	else {
		SOURCES += tco_pipe.cpp
	}

	system('pkg-config --exists libevent') {
		CONFIG    += link_pkgconfig
		PKGCONFIG += libevent
	}
	else {
		system('cc -E $$PWD/conftests/libevent2.h -o /dev/null 2> /dev/null') {
			DEFINES += SJ_LIBEVENT_MAJOR=2
		}
		else:system('cc -E $$PWD/conftests/libevent1.h -o /dev/null 2> /dev/null') {
			DEFINES += SJ_LIBEVENT_MAJOR=1
		}
		else {
			warning("Assuming libevent 1.x")
			DEFINES += SJ_LIBEVENT_MAJOR=1
		}

		LIBS += -levent_core
	}

	target.path  = /usr/lib
	headers.path = /usr/include

	QMAKE_PKGCONFIG_NAME        = eventdispatcher_libevent
	QMAKE_PKGCONFIG_DESCRIPTION = "Libevent-based event dispatcher for Qt"
	QMAKE_PKGCONFIG_LIBDIR      = $$target.path
	QMAKE_PKGCONFIG_INCDIR      = $$headers.path
	QMAKE_PKGCONFIG_DESTDIR     = pkgconfig
}
else {
	LIBS        += -levent
	headers.path = $$DESTDIR
	target.path  = $$DESTDIR
}

win32 {
	SOURCES += tco_win32_libevent.cpp
	HEADERS += wsainit.h
	LIBS    += $$QMAKE_LIBS_NETWORK
	CONFIG  -= staticlib
	CONFIG  += dll
}

INSTALLS += target headers
...
Рейтинг: 0 / 0
20.02.2016, 14:34
    #39176083
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
Переименуй либы
...
Рейтинг: 0 / 0
20.02.2016, 14:44
    #39176096
AlexMain
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
Siemargl,

хм, мысль))

снова здорова

Код: plaintext
1.
2.
3.
event.lib(evutil_rand.obj):-1: ошибка: LNK2019: unresolved external symbol __imp_CryptAcquireContextA referenced in function arc4_seed_win32
event.lib(evutil_rand.obj):-1: ошибка: LNK2019: unresolved external symbol __imp_CryptGenRandom referenced in function arc4_seed_win32
..\lib\eventdispatcher_libevent.dll:-1: ошибка: LNK1120: 2 unresolved externals
...
Рейтинг: 0 / 0
20.02.2016, 14:46
    #39176101
AlexMain
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
а это еще что?

Код: plaintext
1.
:-1: предупреждение: LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
...
Рейтинг: 0 / 0
20.02.2016, 15:00
    #39176113
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
AlexMain,

От тебя хотят либы с динамической линковкой, а ты собираешь со статической.
...
Рейтинг: 0 / 0
20.02.2016, 15:00
    #39176114
AlexMain
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
короче, хронология такая, когда собрал libevent без OpenSSL, таких ошибок было больше 30, потом собрал с OpenSSL остались 2
есть подозрения, что в библиотеке OpenSSL, которую я нашел в бинарниках просто нет __imp_CryptAcquireContextA и __imp_CryptGenRandom и надо собирать OpenSSL из исходников
...
Рейтинг: 0 / 0
20.02.2016, 15:23
    #39176134
AlexMain
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent)
SiemarglAlexMain,

От тебя хотят либы с динамической линковкой, а ты собираешь со статической.

ничего не понял, проблема в собранной либе? ее надо пересобрать? или можно в qt изменить тип линковки?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Libevent + QT + VS2013 64bit + QAbstractEventDispatcher (qt_eventdispatcher_libevent) / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]