Qt (Создатель) с WinSocks (ws2_32)

Я хочу использовать более старый фрагмент кода в своем проекте Qt, в котором используется WinSocks.
Я создал свою программу с помощью Qt Creator и не знаю, как мне связать ее с ws2_32-Library. Я уже добавил LIBS += -lws2_32 в свой .pro, но ничего не произошло. Итак, как я могу подключиться к этой библиотеке?

Изменить: Где я могу найти ws2_32.lib, чтобы включить его? Должен ли я сначала скачать его? Я знаю, что он поставляется с «Visual Studio», но я его не использую и не хочу использовать.


person Berschi    schedule 16.11.2009    source источник


Ответы (4)


хорошо, когда вы это знаете, это действительно просто. Qt-SDK поставляется с библиотекой WinSock2, называемой libws2_32.a. Единственное, что вам нужно сделать, это ввести эту строку в свой .pro:

LIBS += C:\Qt\2009.04\mingw\lib\libws2_32.a

это включает библиотеку winsock2 в ваш проект, и вам больше нечего делать.

Вы можете сделать это немного проще, используя эту строку в вашем .pro:

LIBS += -lws2_32
person Berschi    schedule 23.11.2009

Предполагается, что вы должны использовать полный или относительный путь (в зависимости от того, какие пути библиотек у вас есть в вашей среде) к файлу .libs.

Из руководства qmake:

win32:LIBS += c:/mylibs/math.lib
person Georg Fritzsche    schedule 16.11.2009
comment
хорошо, я думаю, это может сработать. Но посмотрите на мою правку, где я могу найти этот ws2_32.lib? - person Berschi; 16.11.2009
comment
QtCreator основан на mingw, поэтому win32:LIBS += ws2_32.lib должен работать, я думаю. Пока не могу проверить, так как я здесь на Mac. - person Georg Fritzsche; 16.11.2009

Вам также нужно добавить путь к заголовкам, чтобы добавить сигнатуры функций динамической библиотеки.

Используйте переменную INCLUDEPATH в файле .pro.

person Patrice Bernassola    schedule 16.11.2009

У меня есть ws2_32.lib в c:\Program Files\Microsoft SDK\Lib\WS2_32.Lib, он поставляется с SDK платформы. У меня есть очень старая версия от февраля 2003 года, я думаю, она мне понадобилась только тогда, когда я использовал VC6.0, но я предполагаю, что она есть и в последней версии.

person iain    schedule 17.11.2009