Re[2]: libevent: как её прилинковать к проекту под Windows?
От: niXman Ниоткуда https://github.com/niXman
Дата: 14.02.18 17:30
Оценка:
Здравствуйте, niXman, Вы писали:

X>для каких целей вам понадобилась именно эта либа? может быть есть что-то другое, попроще, возможно, даже, хидер-онли...


и да. еще не понятно, чем вам не подходит MSYS2?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re: libevent: как её прилинковать к проекту под Windows?
От: MTD https://github.com/mtrempoltsev
Дата: 14.02.18 19:51
Оценка: +1
Здравствуйте, SteeLHeaD, Вы писали:

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


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

И еще, ты в курсе, что на всех картинках ты менял настройки только для конфигурации Debug?
Re[11]: libevent: как её прилинковать к проекту под Windows?
От: Zhendos  
Дата: 14.02.18 22:50
Оценка:
Здравствуйте, SteeLHeaD, Вы писали:

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



R>>

R>>https://github.com/libevent/libevent/blob/master/sample/http-server.c#L339
R>>там даже примеры есть
R>>ну бросьте вы это, зачем себя насиловать если не можете в самой библиотеке разобраться ?

SLH>Примеров везде дофига.

SLH>я ж сказал — у мня на линукс это заработало за 15 мин.
SLH>Но отлаживаться мне надо под виндой.

Ну используйте подсистему Linux на Windows, и делайте тоже самое
что делали и на Linux.

SLH>Если, конечно, MS И дальше будет таким же открытым и современным — возможно, появится версия "студии" под линукс, но пока её нет.

SLH>И даже связываться с полушаманскими методиками отладки под линуксом из под винды типа
SLH>https://habrahabr.ru/company/microsoft/blog/319962/
SLH>мне не очень хочется.

Поставьте CLion на Linux, она будет "подружелюбнее" visual studio,
и отлаживайтесь в ней.
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 . Предыдущая версия .
Re[3]: libevent: как её прилинковать к проекту под Windows?
От: MTD https://github.com/mtrempoltsev
Дата: 15.02.18 04:55
Оценка:
Здравствуйте, SteeLHeaD, Вы писали:

SLH>Как говорится, никогда не было, и вот опять!


Судя по потоку мыслей помощь поможет тебе ровно одна — взять и самому все сделать, параллельно объяснив базу, но это сильно выходит за рамки одного сообщения. Поэтому выдохни и ничего не делай неделю, потом начни читать про процессы компиляции и линковки, основательно, не спеша. Через месяц все соберешь, но уже с пониманием процессов.
Re[13]: libevent: как её прилинковать к проекту под Windows?
От: Mr.Delphist  
Дата: 15.02.18 06:55
Оценка:
Здравствуйте, SteeLHeaD, Вы писали:

SLH>У меня нет к Вам претензий.

SLH>Но я прочитал документацию.
SLH>конкретно — я прочитал вот это:
SLH>руководство по libevent на русском
SLH>В руководстве мне всё понятно.
SLH>Но там нигде нет главы "какие галочки поставить в среде разработки Visual Studio 2015, чтобы заработал хотя бы hello world".
SLH>Поэтому и приходится заниматься догадками.

Гым-гым. Переезжайте-ка Вы из страны розовых эльфов в наше мордорское рукоблудие

Если бы каждая либа занималась тем, что сначала инициализировала все подсистемы, то авторов этих поделий очень быстро бы избавили от ереси в лучших традициях XVII века.
Поймите, libevent всего лишь библиотека (это не Фреймворк, время жизни которого всегда равно времени жизни программы). Поэтому Libevent понятия не имеет, был ли инициализирован WinSock на момент её загрузки, надо ли его деинициализировать по выгрузке библиотеки и т.п. К тому же, на каждой платформе могут добавляться свои нюансы — посмотрите исходники того же pjSIP для интереса, там реально жЫр кроссплатформы.
Re: libevent: как её прилинковать к проекту под Windows?
От: Dambo Россия  
Дата: 15.02.18 09:40
Оценка:
https://github.com/Microsoft/vcpkg

есть ваша либа, можно собирать x86,x64 и для них же статики
Re[2]: libevent: как её прилинковать к проекту под Windows?
От: SteeLHeaD  
Дата: 15.02.18 10:03
Оценка:
Здравствуйте, Dambo, Вы писали:


D>https://github.com/Microsoft/vcpkg


D>есть ваша либа, можно собирать x86,x64 и для них же статики

Спасибо. это интересно. и как то я там не догадался посмотреть, хотя само напрашивается.
Спасибо за наводку!
Re[4]: libevent: как её прилинковать к проекту под Windows?
От: SteeLHeaD  
Дата: 15.02.18 10:04
Оценка:
Здравствуйте, MTD, Вы писали:

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


SLH>>Как говорится, никогда не было, и вот опять!


MTD>Судя по потоку мыслей помощь поможет тебе ровно одна — взять и самому все сделать, параллельно объяснив базу, но это сильно выходит за рамки одного сообщения. Поэтому выдохни и ничего не делай неделю, потом начни читать про процессы компиляции и линковки, основательно, не спеша. Через месяц все соберешь, но уже с пониманием процессов.


Да, спасибо, это хороший совет.
Re: libevent: как её прилинковать к проекту под Windows?
От: vasvladal  
Дата: 15.02.18 10:07
Оценка:
Посмотрите здесь:
Re: libevent: как её прилинковать к проекту под Windows?
От: SteeLHeaD  
Дата: 19.02.18 09:45
Оценка: :)
На тему моих приключений с WinSock я даже специально нарисовал демотиватор для молодых программистов:

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

V>Посмотрите здесь:


Спасибо!
это тоже интересно.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.