Qt Creator проблемы со сборкой |
Здравствуйте, гость ( Вход | Регистрация )
Qt Creator проблемы со сборкой |
DEADHUNT |
14.8.2010, 21:56
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
скачал Qt SDK для Windows, открываю старый проект, при сборки появляются ошибки вида:
...:50:23: error: QtGui/QIcon: No such file or directory ...:51:29: error: QtGui/QTreeWidget: No such file or directory получается qmake не правильно генерирует makefile(не указывая путей где лежат заголовочные файлы), пробовал вручную их добавлять эффект тот же самый, попробовал создал тестовый проект, всё собирается. никто не сталкивался с такой проблемой? |
|
|
Алексей1153 |
14.8.2010, 22:04
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Вот только что , вчера, столкнулся с аналогичным - если то же самое, то в *.pro нужно дописать QtGui в поле QT )
|
|
|
DEADHUNT |
14.8.2010, 22:13
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
не помогло, даже иногда при запуске qmake исключение возникает, лучше бы троли на своём сайте старую версию sdk оставили бы.
|
|
|
DEADHUNT |
15.8.2010, 20:36
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
собрал Qt динамически, запускаю qmake -project, затем собираю, но qmake некоторые файлы распознал как не требующие Qt заголовков(хотя они требуются), как можно это исправить?
|
|
|
DEADHUNT |
16.8.2010, 1:19
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
переделал файл проекта, теперь получаю другие ошибки(под линуксом всё нормально собирается). в проекте подключаются две библиотеке из Qt Solutions:
вначале появляются ошибки о том что не находятся заголовочные файлы moc_qttoolbardialog.cpp, qttoolbardialog.moc, они подключается в конце qttoolbardialog.cpp, только зачем? если закоментировать, то сборка продолжается, зачем получаю ошибки линковки: Раскрывающийся текст
только не понятно зачем линкуется 3dparty/qttoolbardialog/qttoolbardialog.cpp(наверное в этом и ошибка). может я не правильно подключаю эти библиотеки? хотя у тролей написано что можно использовать *.pri. Сообщение отредактировал DEADHUNT - 16.8.2010, 1:20 |
|
|
DEADHUNT |
16.8.2010, 2:18
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
посмотрел Makefile.Release:
в отмеченных местах имеются непонятные зависимости, если их вручную удалить то сборка продолжается без ошибок, может это баг qmake(не правильно генерируется makefile)? закомментировал DEPENDPATH += $$PWD в qtpropertybrowser.pri, qttoolbardialog.pri, получил правильный makefile. остаётся не понятным зачем разработчики Qt в конце *.cpp писали #include "moc_..." из-за которого были ошибки и почему возникла проблема с DEPENDPATH. |
|
|
Litkevich Yuriy |
16.8.2010, 4:42
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
стаётся не понятным зачем разработчики Qt в конце *.cpp писали #include "moc_..." это необходимо, когда объявление и описание класса находятся в одном cpp-файле, а не разнесены по h/cpp. Т.к. qmake, готовя вызов moc, просматривает только файлы перечисленные в переменной HEADERS.
|
|
|
DEADHUNT |
16.8.2010, 14:00
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
это необходимо, когда объявление и описание класса находятся в одном cpp-файле, а не разнесены по h/cpp. Т.к. qmake, готовя вызов moc, просматривает только файлы перечисленные в переменной HEADERS. а почему тогда у меня получилось что в начале компилируются *.cpp файлы, потом генерируются moc и собираются. приходилось выносить объявления классов из *.cpp в *.h. в линуксе всё собиралось правильно, а в винде пришлось так делать. |
|
|
Litkevich Yuriy |
16.8.2010, 21:28
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
DEADHUNT |
21.8.2010, 20:12
Сообщение
#10
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
это необходимо, когда объявление и описание класса находятся в одном cpp-файле, а не разнесены по h/cpp. Т.к. qmake, готовя вызов moc, просматривает только файлы перечисленные в переменной HEADERS. в этом случае moc_*.cpp не компилируется отдельно, раз он уже подключен через #include в *.cpp? опять возникают проблемы со сборкой под win(странно но в линуксе собирается без ошибок, может проблема в Qt Creator 2.0), всё из-за того что в Qt что-то перемудрили, не могли нормально реализовать классы в Qt Solutions(без использования недокументированных макросов, и т.д.) Сообщение отредактировал DEADHUNT - 21.8.2010, 20:12 |
|
|
Текстовая версия | Сейчас: 26.12.2024, 22:10 |