通过Windows上的QMake构建包含Qt库的共享库

时间:2015-08-18 09:32:58

标签: windows qt dll qmake

我想在Windows上使用QMake + mingw创建一个Dll,其中包括一些自定义小部件和依赖的Qt库(链接到一个库)。这可以通过QMake实现吗?

到目前为止我尝试过:

创建共享库项目,并将LIBS添加到.pro文件:

QT       += widgets
TARGET = testqtdll
TEMPLATE = lib
DEFINES += TESTQTDLL_LIBRARY
SOURCES += testqtdll.cpp widget.cpp
HEADERS += testqtdll.h testqtdll_global.h widget.h
FORMS += widget.ui
LIBS += -lqt5core -lqt5gui -lqt5widgets

这样生成的dll不包含QT库。

创建静态库项目,并链接qt static libs。然后在以下后创建dll:

QT       += widgets    
TARGET = testqtlib
TEMPLATE = lib
CONFIG += staticlib    
SOURCES += testqtlib.cpp widget.cpp
HEADERS += testqtlib.h widget.h
FORMS += widget.ui
LIBS += c:/Qt/Static/5.3.1/lib/Qt5Core.a
LIBS += c:/Qt/Static/5.3.1/lib/Qt5Gui.a 
LIBS += c:/Qt/Static/5.3.1/lib/Qt5Widgets.a

这样生成的lib也不包含QT库。

1 个答案:

答案 0 :(得分:0)

毕竟我找到了解决方案。应该使用Qt静态构建来创建这样的dll。工作项目文件:

QT       += core gui widgets
CONFIG += static dll
TARGET = testqtdll
TEMPLATE = lib
DEFINES += TESTQTDLL_LIBRARY
SOURCES += testqtdll.cpp widget.cpp
HEADERS += testqtdll.h testqtdll_global.h widget.h
FORMS += widget.ui