Re[2]: libevent: как её прилинковать к проекту под Windows?
От: SteeLHeaD  
Дата: 15.02.18 01:30
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Здравствуйте, SteeLHeaD, Вы писали:


SLH>>Заранее спасибо за советы.


MTD>Вопросы от которых зависят ответы:

MTD>1. Тебе OpenSSL нужна или нет?
MTD>2. Статически хочешь линковаться или динамически?
MTD>3. Рантайм статический или динамический?
MTD>4. Для x84 или x64?

MTD>И еще, ты в курсе, что на всех картинках ты менял настройки только для конфигурации Debug?


1. Нужна.
Но, так как я не умею читать мысли не могу телепатически узнать, в какое значение устанавливать переменную
OPENSSL_CRYPTO_LIBRARY — наверно, придётся пойти читать мейк — файл.
Пока — я нашел способ собрать библиотеку без OpenSSL

2. Хочу статически, но никаких инструкий на эту тему не нашел.
Я деже не понимаю, можно ли эту библиотеку собрать статически.
Не то что статически с ней слинковаться.
Пока — я просто закидываю DLL — ки, котрые она нагенерила, в ту же папку, где лежит EXEшник.

3. Не понял вопроса. я так понимаю, что это напрямую следует из ответа номер два.
Если я не прав — где мне про это прочитать? (Наверняка есть какая то специальная глава в джефри — рихтере.)

4. Для x64.

Но я вообще то выкрутился.
В форуме на cyberforum.ru мне дали такую очень полезную наводку — пример hello world,
в коротом действительно под виндой надо руками запустить винсокет.
Вот сколько лет на винсокетах под виндой спотыкаюсь — и каждый раз за новом месте!

подсказка звучала так:
"Глядите пример libevent/sample/hello-world.c — нужно вызывать."
Точно...
Да, стал сравнивать, и в отдадчике нашел, в каком месте в одном случае инициализация происходит, а в другом — не происходит.
Оказалось, что под виндовс ДЕЙСТВИТЕЛЬНО надо в самом начале функции main написать
#ifdef _WIN32
    WSADATA wsa_data;
    WSAStartup(0x0201, &wsa_data);
#endif

Как говорится, никогда не было, и вот опять!
Нет, это никогда не надоедает!
Отредактировано 15.02.2018 1:32 SteeLHeaD . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.