Russian Qt Forum
Ноябрь 24, 2024, 10:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Сборка клиентской библиотеки MQTT для Windows  (Прочитано 5987 раз)
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« : Июнь 02, 2015, 07:38 »

Коллеги,
пытаюсь собрать библиотеку MQTT (https://www.eclipse.org/paho/clients/c/) средствами Qt, mingw32.
Для этого создал проект paho-mqtt3c.pro, добавил в него файлы из проекта VS 2013, содержащегося в архиве. Подключил библиотеку ws2_32.dll, которая упоминалась в этом архиве (пришлось для нее сделать библиотеку импорта libws2_32.a с помощью pexports, dlltool). На этапе сборки дает ошибку:
Код:
./release\MQTTClient.o:MQTTClient.c:(.text+0x14c9): undefined reference to `_imp__getsockopt@20'
./release\MQTTClient.o:MQTTClient.c:(.text+0x1524): undefined reference to `_imp__getsockopt@20'
./release\MQTTClient.o:MQTTClient.c:(.text+0x2435): undefined reference to `_imp__getsockopt@20'
При этом в библиотеке импорта (по крайней мере, в def-файле) этот вызов есть.
Если вместо libws2_32 подключать libwsock32, то линковщик ругается на отстутствие других вызовов:
Код:
./release\Socket.o:Socket.c:(.text+0x839): undefined reference to `_imp__WSASend@28'
./release\Socket.o:Socket.c:(.text+0x101d): undefined reference to `_imp__getaddrinfo@16'
./release\Socket.o:Socket.c:(.text+0x1077): undefined reference to `_imp__freeaddrinfo@4'
./release\Socket.o:Socket.c:(.text+0x1a3b): undefined reference to `_imp__WSAAddressToStringW@20'
В чем моя ошибка?
Вообще-то проект будет работать под Linux (там со сборкой все в порядке), а для Windows можно взять готовые библиотеки (https://projects.eclipse.org/projects/technology.paho/downloads), но хотелось бы разобраться. Спасибо.

upd: забыл вложить проект.
« Последнее редактирование: Июнь 02, 2015, 16:08 от sergek » Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Июнь 02, 2015, 07:57 »

Так может их обе надо подключать?
И libws_2 и libwsock?
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #2 : Июнь 02, 2015, 09:11 »

Пробовал, тогда ошибка второго типа.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #3 : Июнь 02, 2015, 12:39 »

обе включил и собрал, но не делал  libws2_32.a т.к. была уже в системе из состава mingw32-runtime-3.1.99-4.6.noarch
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #4 : Июнь 02, 2015, 12:48 »

У меня mingw из состава Qt 5.4.1, там ее нет.. Покажите строчку из профайла, пожалуйста.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #5 : Июнь 02, 2015, 14:05 »

У меня mingw из состава Qt 5.4.1, там ее нет.. Покажите строчку из профайла, пожалуйста.

#LIBS += ../build/libws2_32.a
LIBS += -lwsock32
LIBS += -lws2_32

но я не на венде собираю, а в opensuse
и проекты для windows я собираю под opensuse, мне так удобнее, проблем меньше
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #6 : Июнь 02, 2015, 16:07 »

Спасибо, все собралось. И как я пропустил.. все лежит там, где и должно - Qt\Tools\mingw491_32\i686-w64-mingw32\lib.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 23.