| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > undefined reference на этапе Сборки |
| Автор: everyone 24.10.2010, 23:52 | ||||
| Создал оконное приложение и пытаюсь получить страницу по http Добавил в projectname.pro строку QT += network код в mainwindow.cpp:
слот:
Всё компилируется и работает. Но если создать произвольный класс(в отдельном файле) и функцию в нём с параметром типа QNetworkReply, то линковщик выдаёт: debug/moc_testclass.o:C:\qtprj\test-build-desktop/debug/moc_testclass.cpp:72: undefined reference to `testclass: Qt 4.7.0 (win32) |
| Автор: null56 25.10.2010, 01:10 |
| запусти еще раз qmake и пересобери проект если не прокатит, скинь содержимое файла проекта (*.pro) сюда |
| Автор: everyone 25.10.2010, 01:27 | ||
| нет, всё то же самое содержимое .pro:
проблема возникает в swaper. Его создаёт table, который создаётся в mainwindow. Но это вряд ли имеет значение |
| Автор: null56 25.10.2010, 11:17 |
| не совсем понятно, на что ругается линковщик... на слот, на метод или на что - то другое... опишите пожалуйста поподробнее Добавлено @ 11:18 приведите пожалуйста файл swaper.h, хотя бы его существенную часть |
| Автор: everyone 25.10.2010, 12:23 | ||
swaper.h:
такие ошибки очень сбивают с толку) буду очень рад, если поможете |
| Автор: everyone 25.10.2010, 15:29 | ||
Так всё компилируется:
void hi(QNetworkReply *k) - слот и, наверно, должен быть обязательно реализован. |
| Автор: djamshud 25.10.2010, 18:50 |
| Реализация метода именно в цпп - совершенно необязательное условие. Нужно просто его реализовать. >слот и, наверно, должен быть обязательно реализован. Обычно все методы должны быть реализованы, иначе их практическая ценность стремится к нулю:). |
| Автор: null56 25.10.2010, 19:18 | ||||
да ты прав... но это я писал ТОЛЬКО в отношении слотов, у меня вроде раньше были проблемы с определением их в загаловке... даже тему поднимал по этому поводу... но сейчас вроде линкуются или я чего путаю Добавлено через 7 минут и 27 секунд я на это ссылаюсь
Добавлено через 7 минут и 43 секунды это из книги, но могло уже поменяться все |
| Автор: djamshud 25.10.2010, 19:26 |
| Никогда не встречал такой проблемы и не вижу объективных причин ее возникновения. Если с вынесением кода из описания класса в тот же заголовочный файл все понятно, то почему должно что-то перестать работать (линковаться!) при сохранении кода внутри описания класса, не ясно. |
| Автор: null56 25.10.2010, 21:13 |
| everyone, скинь свой проект куда - нибудь... попробую собрать |
| Автор: everyone 25.10.2010, 22:05 | ||
ну, почему бы не реализовать слот в заголовочном файле? да вроде всё выяснили, всё собирается, я же говорю) это был просто тестовый пример, я удалил уже. всем спасибо |
| Автор: null56 25.10.2010, 22:22 |
я просто предполагал возможные ошибки, как вариант moc... отрывок из книги я привел... конечно можно в заголовке |