Russian Qt Forum

Qt => Вопросы новичков => Тема начата: mevn от Май 12, 2012, 13:18



Название: Мониторинг (hotplug) устройств в *.nix
Отправлено: mevn от Май 12, 2012, 13:18
   Добрый день.
В программировании в QT я новичок. Столкнулся с проблемой идентичной проблеме изложенной в http://www.prog.org.ru/topic_12321_0.html
Не подскажете как слинковать проект с  libudev?
Немного уточню вопрос
Имеется шаред библиотека в которой есть класс который использует udev. При компиляции библиотеки ошибок нет. Но при подключении этой библиотеки к приложению и компиляции приложения вылезают такие ошибки:
Цитировать
../release/libqserialdevicewatcher.so: undefined reference to `udev_monitor_enable_receiving'
../release/libqserialdevicewatcher.so: undefined reference to `udev_monitor_get_fd'
../release/libqserialdevicewatcher.so: undefined reference to `udev_monitor_new_from_netlink'
../release/libqserialdevicewatcher.so: undefined reference to `udev_new'

Вопрос: как нужно правильно оформлять библиотеку, чтобы не ругалось Си-шные функции ?
Еще раз перефразирую вопрос.
Ситуация следующая:
Библиотеку и приложения писал не я.
В сентябре все компилировалось (по словам разработчиков).
Пришел, мягко говоря с нуля, так получилось (все уволились меня перевели на новое место, раньше программировал контроллеры) теперь я один.
Компилирую файлы через Eclipse indigо. На том же компе, где приложения писались. В проекте используется около 4 приложений. Только в одном выскакивает подобное сообщение. Под виндой все проходит на ура.
Подскажите хотя бы откуда начать искать. Разработчики посоветовали переустановить udev. Не помогло.


Название: Re: Мониторинг (hotplug) устройств в *.nix
Отправлено: kuzulis от Май 12, 2012, 19:58
В том же топике и был ответ...

1. Подключаем через
Код
C++ (Qt)
extern "C"
{
#include <libudev.h>
};
 
2. Линкуем так:
Цитировать
LIBS += -ludev


Что непонятно то?


Название: Re: Мониторинг (hotplug) устройств в *.nix
Отправлено: mevn от Май 13, 2012, 05:02
добрый день.
Спасибо за ответ.
Сишных файлов штук 50. В каждом файле добавлять эти строки? Причем раньше (примерно пол года назад приложение компилилось без проблем.


Название: Re: Мониторинг (hotplug) устройств в *.nix
Отправлено: mevn от Май 14, 2012, 07:49
Линкование помогло (добавление строки).
Однако, остался вопрос, как программа компилировалась раньше без этого???


Название: Re: Мониторинг (hotplug) устройств в *.nix
Отправлено: gogi от Май 14, 2012, 07:53
Однако, остался вопрос, как программа компилировалась раньше без этого???

Ну ты же наверное обновлялся? Компилятор и/или библиотеки немного изменились.


Название: Re: Мониторинг (hotplug) устройств в *.nix
Отправлено: mevn от Май 14, 2012, 09:21
В том, то и дело. Я не обновлялся. У меня нет доступа к инету с той машины. Хотя обновлялся предыдущий пользователь.