Название: Qt & Code::Blocks Отправлено: bob от Декабрь 20, 2005, 15:35 Сделал в QtDesigner форму пытаюсь компилять в Code::Blocks и получаю такое сообщение:
Код: Linking executable: D:\ProjectsQt\Training\MyTest\QTapp.exe Название: Qt & Code::Blocks Отправлено: limetree от Декабрь 22, 2005, 15:51 Мне тоже интересно! Сейчас рассматриваю возможности...
Взял стадартный пример...\examples\mainwindows\menus и получил пример такую же штуку: Linking executable: C:\projects\test\test1.exe .objs\mainwindow.o:mainwindow.cpp:(.text+0x176): undefined reference to `vtable for MainWindow' .objs\mainwindow.o:mainwindow.cpp:(.text+0x182): undefined reference to `vtable for MainWindow' .objs\mainwindow.o:mainwindow.cpp:(.text+0x8ca): undefined reference to `vtable for MainWindow' .objs\mainwindow.o:mainwindow.cpp:(.text+0x8d6): undefined reference to `vtable for MainWindow' Юзаю QT4.0 free и MinGW 3.4.4 добавлено спустя 38 минут: У меня есть подозрение, не работает MOC, но кок его настроить что бы работал не знаю. Может уважаемые ALL скажут, ведь кто-то уже проходил это. Название: Qt & Code::Blocks Отправлено: limetree от Декабрь 26, 2005, 15:53 Действительно, я нашел:
Цитировать Итак. В Tools я создал себе 2 пункта для создания pro и make файлов. Разобраться там будет несложно. Далее в свойствах проекта включил галочку "This is a custom Makefile". Дабы каждый раз не лазить и ставить эту галочку опять же можно в файле CodeBlocks_Install_Dir/share/CodeBlocks/templates/qt.cbp добавить строчку Код: <Option makefile_is_custom="1"/> после строки Код: <Option makefile="Makefile"/> С moc действительно не хотело работать, но все-таки удалось это исправить. Лезем Settings->Compiler->Other и меняем Build method на "Work with Makefiles..." Вуаля. но не понял вот чего: "В Tools я создал себе 2 пункта для создания pro и make файлов." Можно по поподробнее для чайника, pls, что нужно сделать в этих двух пунктах с уважением, limetree Название: Qt & Code::Blocks Отправлено: L.Marvell от Декабрь 26, 2005, 16:38 Нужно создать 2 пункта. Первый называем к примеру Project и вбиваем строку qmake -project, а второй к примеру называем Makefile и вбиваем строку qmake. Все, пользуем.
Название: Qt & Code::Blocks Отправлено: limetree от Декабрь 27, 2005, 13:38 Спасибо, вроде начало чего-то шевелится, но
Цитировать make.exe -f Makefile.Debug make.exe[1]: Entering directory `C:/projects/test6' g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/qt/4.0.0/include/QtGui" -I"C:/qt/4.0.0/include/QtCore" -I"C:/qt/4.0.0/include" -I"." -I"C:/qt/4.0.0/include/ActiveQt" -I"debug" -I"." -I"C:\qt\4.0.0\mkspecs\win32-g++" -o debug\main.o main.cpp g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,windows -o "debug\test6.exe" debug\main.o -L"C:\qt\4.0.0\lib" -lmingw32 -lqtmaind -lQtCored4 -lQtGuid4 C:\CodeBlocks\bin\..\lib\gcc\mingw32\3.4.4\..\..\..\..\mingw32\bin\ld.exe: cannot find -lqtmaind collect2: ld returned 1 exit status make.exe[1]: Leaving directory `C:/projects/test6' make.exe[1]: *** [debug\test6.exe] Error 1 make.exe: *** [debug] Error 2 Process terminated with status 1 (0 minutes, 5 seconds) 1 errors, 0 warnings Хотя файл qtmaind.prl лежит в каталоге $QTDIR\lib. Чего ему еще не хватает? Название: Qt & Code::Blocks Отправлено: limetree от Декабрь 28, 2005, 11:38 Я решил эту проблему
Цитировать C:\CodeBlocks\bin\..\lib\gcc\mingw32\3.4.4\..\..\..\..\mingw32\bin\ld.exe: cannot find -lqtmaind Сделал libqtmaind.a (и соотв. dll-ку) Для этого в $QTDIR\src\winmain выполнил make -f Makefile.debug Аналогично для QtCored4 и QtGuid4 в каталогах corelib и qtgui Название: Re: Qt & Code::Blocks Отправлено: mnv от Ноябрь 16, 2007, 15:51 А я вот попытался так решить - частично помогло, но не совсем
У меня QT4.3.2 + MinGW + Eclipse. Поставил - все работает, но!!! Решил переконфигурировать QT с ключем -static. После этого, при попытке скомпилировать проект, который ранее работал, возникает ошибка: Код: cannot find -lqtmaind По вашему совету выполнил команду Цитировать make -f Makefile.debug по очереди в папках winmain, gui, corelibДля winmain все прекрасно сработало. Ошибка Код: cannot find -lqtmaind Но появляется теперь ошибка Код: cannot find -lqtgui Глянул в lib - там создались файлы libqtmaind, libQtGuid, libQtCored. Попробовал переименовать libQtGuid->libQtGui, libQtCored->libQtCore. Старые ошибки пропали!! Но осталась такая ошибка Код: make: *** [release] Error 2 Как бы от нее избавиться? Может переименовывать файлы было некорректно? Название: Re: Qt & Code::Blocks Отправлено: Mikhail от Ноябрь 16, 2007, 16:48 Конечн переименовывать библиотеки не надо. Стоит попробовать удалить объектные файлы( mingw32-make clean ) и мэйкфайлы своего проекта, а далее выполнить для своего проекта qmake и mingw32-make.
и все получится. |