crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> 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:
include(3dparty/qtpropertybrowser/qtpropertybrowser.pri)
include(3dparty/qttoolbardialog/qttoolbardialog.pri)

вначале появляются ошибки о том что не находятся заголовочные файлы moc_qttoolbardialog.cpp, qttoolbardialog.moc, они подключается в конце qttoolbardialog.cpp, только зачем? если закоментировать, то сборка продолжается, зачем получаю ошибки линковки:
Раскрывающийся текст

g++ -IC:\boost_1_43_0 -IC:\qt_4_6_3\include -std=c++0x -g -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN 3dparty/qttoolbardialog/qttoolbardialog.cpp -o 3dparty/qttoolbardialog/QtToolBarDialog 
mingw32-make[1]: Leaving directory `Z:/projects/DevStudio/trunk'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `freeData':
C:/qt_4_6_3/include/QtCore/qmap.h:632: undefined reference to `_imp___ZN8QMapData16continueFreeDataEi'
C:/qt_4_6_3/include/QtCore/qmap.h:632: undefined reference to `_imp___ZN8QMapData16continueFreeDataEi'
C:/qt_4_6_3/include/QtCore/qmap.h:632: undefined reference to `_imp___ZN8QMapData16continueFreeDataEi'
C:/qt_4_6_3/include/QtCore/qmap.h:632: undefined reference to `_imp___ZN8QMapData16continueFreeDataEi'
C:/qt_4_6_3/include/QtCore/qmap.h:632: undefined reference to `_imp___ZN8QMapData16continueFreeDataEi'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:C:/qt_4_6_3/include/QtCore/qmap.h:632: more undefined references to `_imp___ZN8QMapData16continueFreeDataEi' follow
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `free':
C:/qt_4_6_3/include/QtCore/qlist.h:649: undefined reference to `_imp___Z5qFreePv'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `freeData':
C:/qt_4_6_3/include/QtCore/qhash.h:567: undefined reference to `_imp___ZN9QHashData11free_helperEPFvPNS_4NodeEE'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `freeData':
C:/qt_4_6_3/include/QtCore/qmap.h:632: undefined reference to `_imp___ZN8QMapData16continueFreeDataEi'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `freeData':
C:/qt_4_6_3/include/QtCore/qstring.h:869: undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `freeData':
C:/qt_4_6_3/include/QtCore/qmap.h:632: undefined reference to `_imp___ZN8QMapData16continueFreeDataEi'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `free':
C:/qt_4_6_3/include/QtCore/qstring.h:869: undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `free':
C:/qt_4_6_3/include/QtCore/qlist.h:649: undefined reference to `_imp___Z5qFreePv'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `QMap':
C:/qt_4_6_3/include/QtCore/qmap.h:164: undefined reference to `_imp___ZN8QMapData11shared_nullE'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `QHash':
C:/qt_4_6_3/include/QtCore/qhash.h:282: undefined reference to `_imp___ZN9QHashData11shared_nullE'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `QList':
C:/qt_4_6_3/include/QtCore/qlist.h:113: undefined reference to `_imp___ZN9QListData11shared_nullE'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:377: undefined reference to `_imp___ZNK7QObject10objectNameEv'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:377: undefined reference to `_imp___ZNK7QStringeqERKS_'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `~QString':
C:/qt_4_6_3/include/QtCore/qstring.h:869: undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:385: undefined reference to `_imp___ZNK7QString11toLocal8BitEv'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:385: undefined reference to `_imp___Z8qWarningPKcz'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:390: undefined reference to `_imp___ZNK7QWidget11windowTitleEv'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:390: undefined reference to `_imp___ZNK7QStringeqERKS_'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `~QString':
C:/qt_4_6_3/include/QtCore/qstring.h:869: undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:397: undefined reference to `_imp___ZNK7QString11toLocal8BitEv'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:397: undefined reference to `_imp___Z8qWarningPKcz'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `~QByteArray':
C:/qt_4_6_3/include/QtCore/qbytearray.h:382: undefined reference to `_imp___Z5qFreePv'
C:/qt_4_6_3/include/QtCore/qbytearray.h:382: undefined reference to `_imp___Z5qFreePv'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:434: undefined reference to `_imp___ZNK7QObject10objectNameEv'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:434: undefined reference to `_imp___ZNK7QStringeqERKS_'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `~QString':
C:/qt_4_6_3/include/QtCore/qstring.h:869: undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `QtFullToolBarManager':
Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:445: undefined reference to `_imp___ZN7QObjectC2EPS_'
Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:445: undefined reference to `vtable for QtFullToolBarManager'
Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:445: undefined reference to `_imp___ZN7QObjectD2Ev'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `qMapLessThanKey<QString>':
C:/qt_4_6_3/include/QtCore/qmap.h:107: undefined reference to `_imp___ZNK7QStringltERKS_'
C:/qt_4_6_3/include/QtCore/qmap.h:107: undefined reference to `_imp___ZNK7QStringltERKS_'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `QtToolBarManager':
Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:837: undefined reference to `_imp___ZN7QObjectC2EPS_'
Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:837: undefined reference to `vtable for QtToolBarManager'
Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:837: undefined reference to `_imp___ZN7QObjectD2Ev'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o: In function `~QtToolBarManager':
Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:848: undefined reference to `vtable for QtToolBarManager'
Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:848: undefined reference to `_imp___ZN7QObjectD2Ev'
C:\DOCUME~1\killer\LOCALS~1\Temp\ccieSbd2.o:Z:\projects\DevStudio\trunk/3dparty/qttoolbardialog/qttoolbardialog.cpp:1226: undefined reference to `_imp___ZNK11QListWidget11currentItemEv'


только не понятно зачем линкуется 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:
release/MainWindow.o: src/MainWindow.cpp 3dparty/qttoolbardialog/QtToolBarManager \ // <<
        3dparty/qttoolbardialog/qttoolbardialog.h \
        3dparty/qttoolbardialog/QtToolBarDialog \ // <<
        src/MainWindow.h \
        ...
        3dparty/qtpropertybrowser/QtTreePropertyBrowser \ // <<
        3dparty/qtpropertybrowser/qttreepropertybrowser.h \
        3dparty/qtpropertybrowser/qtpropertybrowser.h \
        src/Database.h
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\MainWindow.o src\MainWindow.cpp

в отмеченных местах имеются непонятные зависимости, если их вручную удалить то сборка продолжается без ошибок, может это баг 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  


Цитата(DEADHUNT @ 16.8.2010, 6:18) *
стаётся не понятным зачем разработчики Qt в конце *.cpp писали #include "moc_..."
это необходимо, когда объявление и описание класса находятся в одном cpp-файле, а не разнесены по h/cpp. Т.к. qmake, готовя вызов moc, просматривает только файлы перечисленные в переменной HEADERS.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 16.8.2010, 14:00
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(Litkevich Yuriy @ 16.8.2010, 5:42) *
это необходимо, когда объявление и описание класса находятся в одном 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 @ 16.8.2010, 18:00) *
в линуксе всё собиралось правильно, а в винде пришлось так делать.
этого я не знаю, может что-то троли упустили, может специально сделали для каких-то целей.
я не использую DEPENDPATH, не вижу нужды в нём.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 21.8.2010, 20:12
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(Litkevich Yuriy @ 16.8.2010, 5:42) *
это необходимо, когда объявление и описание класса находятся в одном cpp-файле, а не разнесены по h/cpp. Т.к. qmake, готовя вызов moc, просматривает только файлы перечисленные в переменной HEADERS.

в этом случае moc_*.cpp не компилируется отдельно, раз он уже подключен через #include в *.cpp?
опять возникают проблемы со сборкой под win(странно но в линуксе собирается без ошибок, может проблема в Qt Creator 2.0), всё из-за того что в Qt что-то перемудрили, не могли нормально реализовать классы в Qt Solutions(без использования недокументированных макросов, и т.д.)

Сообщение отредактировал DEADHUNT - 21.8.2010, 20:12
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 13:57