Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 0
Регистрация: 17.02.2012
Сообщений: 68

Не запускается пример из книги М. Шлее

17.09.2013, 19:28. Показов 1496. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пример из книги М. Шлее "Qt4.5: Профессиональное программирование на С++", упрощенный до минимума с целью локализовать ошибку:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <QtWidgets>
#include <QtGui>
 
class MyView: public QGraphicsView {
    Q_OBJECT
public:
    MyView(QGraphicsScene* pScene, QWidget* pwgt = 0)
        : QGraphicsView(pScene, pwgt)
    {
    }
};
 
int main(int argc, char** argv) {
    QApplication app(argc, argv);
    QGraphicsScene scene(QRectF(-100, -100, 640, 480));
    MyView* pView = new MyView(&scene);
    return app.exec();
}
Нажимаем Build - появляется 3 пометки на строке 8: две с комментарием " undefined reference to `vtable for MyView' ", одна с комментарием "ld returned 1 exit status". Если убрать строки 15 и 16 линковка проходит без проблем. В чем ошибка?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.09.2013, 19:28
Ответы с готовыми решениями:

Не запускается пример из книги Шлее по QT 4.8
Hi all! Вот такая проблема.:( Создал пустой проект, в него добавил hello.cpp, вот код: #include &lt;QtGui&gt; int main(int...

Не запускается пример из книги Шлее qt5.3
У меня стоит 5.8 Как я понял, виджет потомок должен отображаться, когда родитель имеет метод show() может, просто версия старая,...

Очередной неработающий пример из книги Шлее
Проблема состоит в том, что программа компилируется и появляются необходимые окна, но все завершается с ошибкой. Проблема заключается в...

1
Заблокирован
17.09.2013, 22:07
вынеси класс с отдельные .h и .cpp файлы
Ну или можешь как-то отдельно moc на это натравливать и инклудить то, что там в результате получается (но это костыли).

Кстати, тема поднимается постоянно, можно и закрепить уже.

Т.е. все дело в макросе Q_OBJECT (вдруг не понял, поясняю).
То, что снабжено таким макросом обрабатывается метаобъектным компилятором, который создает файлы с префиксом moc_ и вот их содержимое надо приинклудить сюда.

Ну а если ты разобьешь проект нормально на модули - проблема сама собой испарится - все будет происходить автоматически.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2013, 22:07
Помогаю со студенческими работами здесь

Пример из Шлее калькулятор
вообщем стал разбирать пример(Макс Шлее листинг 6.11), выяснил что где-то косяк - а точнее в QStack&lt;QString&gt; m_stk; не записываетяся...

Не компилируется код из книги Макса Шлее
Здравствуйте. Пытаюсь изучить Qt по книге Макса Шлее &quot;Qt 4.8. Проффессиональное программирование&quot;. В книге, в качестве...

Пример из книги
В учебнике Флэнагана написано, что типа можно использовать символы Юникода из других категорий, помимо ASCII, при условии, что они не...

Пример из книги
Пытаюсь разобрать примеры из книги Харрингтона &quot;PHP-трюки&quot;. Трюк 3 (стр.46) Все более-менее понятно. Кроме одного фрагмента. ...

Пример из книги
пишет что char* str1 должен быть константный но тогда я не смогу менять его в функции, пример точь в точь как в книге // copystr.cpp ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru