使用QT、QTcreator和mingw32的Windows中未定义的引用

使用QT、QTcreator和mingw32的Windows中未定义的引用,qt,reference,qt-creator,undefined,mingw32,Qt,Reference,Qt Creator,Undefined,Mingw32,在Windows witn mingw32中构建应用程序时,我得到了未定义的引用(在Linux中不会发生这种情况)。该应用程序分为两部分: 1-一套类似PRO的designer插件: QT+=核心gui sql CONFIG+=设计器插件调试和发布 TARGET=$$qtLibraryTarget(impwidgetsplugin) 模板=lib 这将在c:\ilri\crossimpact中生成文件libimpwidgetsplugin.a和impwidgetsplugin.dll\ 2-库中

在Windows witn mingw32中构建应用程序时,我得到了未定义的引用(在Linux中不会发生这种情况)。该应用程序分为两部分:

1-一套类似PRO的designer插件:

QT+=核心gui sql

CONFIG+=设计器插件调试和发布

TARGET=$$qtLibraryTarget(impwidgetsplugin)

模板=lib

这将在c:\ilri\crossimpact中生成文件libimpwidgetsplugin.a和impwidgetsplugin.dll\

2-库中的一组插件,需要impwidgetsplugin与PRO类似:

QT+=核心gui sql svg

TARGET=$$qtLibraryTarget(impmainmodules)模板=lib配置+= 插件

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,使其正确链接吗

非常感谢你的帮助。
卡洛斯

通过使用plugin.pro文件中的
LIBS+=-Wl,-导出所有符号,您可以获得与linux几乎相同的行为


但是看起来您没有正确地使用宏导出类。

您可以通过使用
LIBS+=-Wl,-导出plugin.pro文件中的所有符号,获得与linux几乎相同的行为


但看起来您没有正确地将类与宏一起导出。

是!!这就是问题所在!。非常感谢。是的!!这就是问题所在!。非常感谢你。