Неопределенная ссылка в Windows с QT, QTcreator и mingw32 - PullRequest
1 голос
/ 22 марта 2012

Я получаю неопределенную ссылку, когда создаю приложение в Windows с помощью mingw32 (в Linux этого не происходит).Приложение разделено на две части:

1 - набор дизайнерских плагинов с PRO, например:

QT + = core gui sql

CONFIG + =Плагин конструктора debug_and_release

TARGET = $$ qtLibraryTarget (impwidgetsplugin)

TEMPLATE = lib

Это создает файлы: libimpwidgetsplugin.a и impwidgetsplugin.dll в c:\ ilri \ crossimpact \

2- Набор плагинов в библиотеке, для которых требуется плагин impwidgetsplugin с PRO, например:

QT + = основной графический интерфейс sql svg

TARGET = $$ qtLibraryTarget (impmainmodules) TEMPLATE = lib CONFIG + = плагин

win32: LIBS + = -Lc: / ilri / crossimpact -limpwidgetsplugin

....

Проблема в том, что я всегда получаю:

./release\plots.o:plots.cpp:(.text+0x13f5): undefined reference to `calcDialog::calcDialog(QWidget*)'

calcDialog определяется в impwidgetsplugin.

я вижу, что для параметров make есть необходимая библиотека limpwidgetsplugin:

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,..\..\..\libimpmainmodules.a -o ..\..\..\impmainmodules.dll object_script.impmainmodules.Release -L"c:\Qt\2010.03\qt\lib" -Lc:/ilri/crossimpact -limpwidgetsplugin -lQtSvg4 -lQtSql4 -lQtGui4 -lQtCore4

Есть идеи, как мне настроить PRO, чтобы он правильно связывал его?

Большое спасибо за любую помощь.Карлос.

1 Ответ

1 голос
/ 22 марта 2012

Вы можете вести себя почти так же, как и в Linux, используя LIBS+=-Wl,-export-all-symbols в файле плагина .pro.

Но, похоже, вы неправильно экспортировали класс с макросами Q_DECL_EXPORT и Q_DECL_IMPORT.

...