Название: Ошибка: undefined reference Отправлено: alexey11111 от Февраль 27, 2012, 15:20 Добрый день!
Очень нужна помощь вот по такому вопросу. В класс Sample зашита статическая callback функция, которая реагирует на сообщения, например от usb устройства (или другого устройства, или какое-либо действие - неважно в данном контексте). Реакция функции - вывод некоторого текста на QLabel главного окна. Поскольку статические сигналы создавать нельзя, то я это реализовал следующим образом: - Создал специальный класс Instance (подобие синглтона), унаследованный от QObject - добавил в класс Instance сигнал setText и метод emitSignal() для отправки сигналов - добавил в класс Sample член - статическую переменную m_inst типа Instance - указатель на экземпляр Instance. - m_inst инициализируется как m_inst = new Instance и соединяется со слотом QLabel - теперь реакция callback функции может быть реализована в виде m_inst->emitSignal() Ниже приведен полный код (это демонстрационная вариант, сделал, чтобы суть проблемы передать): 1. instance.h Код: #ifndef INSTANCE_H 2. Instance.cpp Код: #include "instance.h" 3. sample.h Код: #ifndef SAMPLE_H 4. sample.cpp Код: #include "sample.h" 5. main.cpp Код: #include <QtGui/QApplication> 6. .pro файл Код: QT += core gui Проект не компилируется. Выводится 6 раз такая штука "ошибка: undefined reference to `Sample::m_inst'" В чем проблема? Заранее благодарю за помощь. Название: Re: Ошибка: undefined reference Отправлено: Alex Custov от Февраль 27, 2012, 15:28 статический атрибут класса нужно явным образом создать
sample.cpp Код: #include "sample.h" Название: Re: Ошибка: undefined reference Отправлено: alexey11111 от Февраль 27, 2012, 22:14 Спасибо огромное!!!!!!!!!!!! Все заработало!!!!!!!!
|