Russian Qt Forum
Ноябрь 23, 2024, 03:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: undefined reference to `WinMain@16  (Прочитано 11204 раз)
slava_d200
Гость
« : Ноябрь 09, 2012, 16:15 »

как побароть, что этому QT еще надо.
есть плагин для QCreator.
какой там нафиг mail должен быть.

притом, это сообщение вываливается что я создаю свой плагин, что беру демку.
везде одно и тоже

вернее это новерно не QT надо а MinGW
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Ноябрь 09, 2012, 16:31 »

какой там нафиг mail должен быть.
mail? да уж рассмешил) Это вообще-то Name mangling.
Как-то не так собираешь, ибо в плагинах не должно быть WinMain-a.
Записан

Qt 5.11/4.8.7 (X11/Win)
slava_d200
Гость
« Ответ #2 : Ноябрь 09, 2012, 16:34 »

сорри ну конечно main (опечатка)
а что не правильно.
установить MinGW (взял с сайта)
установить QtCreator
установил Qt 4.8.3
прописал пути как в системе там и в креаторе.

C:/Qt/MinGW/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `D:/55555/qt-widgets-article/widget-plugin'
g++ -Wl,-s -o c:\Qt\4.8.3\plugins\designer\libwidget-plugin.a release/customspin.o release/customspinplugin.o release/moc_customspin.o release/moc_customspinplugin.o  -L".\lib" -L"c:\Qt\4.8.3\lib" -lQtXml4 -lQtGui4 -lQtCore4 -lQtDesigner4
mingw32-make[1]: Leaving directory `D:/55555/qt-widgets-article/widget-plugin'
c:/qt/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../libmingw32.a(main.o): In function `main':
C:\MinGW\msys\1.0\src\mingwrt/../mingw/main.c:73: undefined reference to `WinMain@16'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [c:\Qt\4.8.3\plugins\designer\libwidget-plugin.a] Error 1
mingw32-make: *** [release] Error 2
17:39:51: Процесс «C:\Qt\MinGW\bin\mingw32-make.exe» завершился с кодом 2.
« Последнее редактирование: Ноябрь 09, 2012, 16:41 от slava_d200 » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Ноябрь 09, 2012, 18:37 »

Судя по опциям линковки идёт сборка обычного exe-шника, только названного почему-то 'libwidget-plugin.a'.
При создании проекта был выбран 'Other Qt Project/Qt Creator Plugin'?
Записан

Qt 5.11/4.8.7 (X11/Win)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #4 : Ноябрь 09, 2012, 21:41 »

Это баг Qt4.8.3 MinGW-шной сборки.

Добавь в \4.8.3\mkspecs\win32-g++\qmake.conf это (красненьким)

Цитировать
CONFIG += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header dll

Также в тот же qmake.conf нужно добавить (красненьким):

Цитировать
QMAKE_IDC      = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc.exe
QMAKE_RCC      = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}rcc.exe

QMAKE_IDL      = midl
Иначе ГУЙ с ресурсами не будет билдиться.
Записан

ArchLinux x86_64 / Win10 64 bit
slava_d200
Гость
« Ответ #5 : Ноябрь 10, 2012, 09:39 »

Судя по опциям линковки идёт сборка обычного exe-шника, только названного почему-то 'libwidget-plugin.a'.
При создании проекта был выбран 'Other Qt Project/Qt Creator Plugin'?

прошу прощения, а разве для QtCreatorа - эта опция не подходит 'Other Qt Project/Qt Creator Plugin' или надо другой
вид проекта выбирать. ?

было какое то время что все было нормально, и плагин создавался, и я его мог использовать,
а теперь и не плагин не создается нормально, и программа в которой данный плагин используется ругается на класс плагина.
Записан
slava_d200
Гость
« Ответ #6 : Ноябрь 10, 2012, 10:32 »

воспользовался советом: kuzulis

все замечательно теперь плагин формируется.
но не ушла ошибка на ругательство накласс.

в QtCreatore плагин видится, но программа не хочет компилироватся ругается на класс плагина,
такое ощущение что он его не находит хотя вроде все пути прописаны и файлики подложены.

11:32:06: Выполняются этапы для проекта widget-plugin-usage...
11:32:06: Настройки не изменились, этап qmake пропускается.
11:32:06: Запускается: «C:\MinGW\bin\mingw32-make.exe»
C:/MinGW/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `D:/55555/qt-widgets-article/widget-plugin-usage-build-Qt_4_8_3_в_PATH_4_8_3-__________________________'
g++ -Wl,-s -Wl,-subsystem,windows -Wl,--out-implib,release\libwidget-plugin-usage.a -o release\widget-plugin-usage.exe release/main.o release/mainwindow.o release/moc_mainwindow.o  -L".\lib" -L"c:\Qt\4.8.3\lib" -lmingw32 -lqtmain -LC:\Qt\4.8.3\plugins/designer -lwidget-plugin -lQtGui4 -lQtCore4
mingw32-make[1]: Leaving directory `D:/55555/qt-widgets-article/widget-plugin-usage-build-Qt_4_8_3_в_PATH_4_8_3-__________________________'
release/mainwindow.o:mainwindow.cpp:(.text+0x14d): undefined reference to `CustomSpin::CustomSpin(QWidget*)'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\widget-plugin-usage.exe] Error 1
mingw32-make: *** [release] Error 2
11:32:06: Процесс «C:\MinGW\bin\mingw32-make.exe» завершился с кодом 2.
Возникла ошибка при сборке/установке проекта widget-plugin-usage (цель: Qt 4.8.3 в PATH (4.8.3))
Во время выполнения этапа «Сборка»
Записан
CanSee
Гость
« Ответ #7 : Ноябрь 18, 2012, 19:34 »

Это баг Qt4.8.3 MinGW-шной сборки.
Добавь в \4.8.3\mkspecs\win32-g++\qmake.conf это (...)
У меня точно такая же проблема была, правда не при сборке модуля для Qt Creator, а при сборке обычной DLL. Тоже победилась выполнением этого совета. Большое спасибо, kuzulis! Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.