目标:需要将一个QT程序生成动态链接库
Windows环境下Qt生成的共享库文件其后缀为dll,可以在程序运行过程中动态加载
- 新建项目,选择库
- 选择共享库
- 建立好项目后生成三个文件,两个.h一个.cpp。
- 加入自己的功能函数,生成。可以生成.dll .a .o。
我的问题是没有生成.dll文件,在.pro文件中添加:CONFIG +=dll。会出现错误: udefined reference to WinMain@16。原因是qt不知道需要生成库文件,想要找到main函数。
网上解决方案有几种:
- uninstall Mingw 4.6, and download Mingw version 4.4
-
@CONFIG += shared@,to your .pro-file! qmake seems to be confused if neither -shared nor -static build is specified
尝试了这两种方法都行不通,最后无奈,添加了一个main()空函数,成功生成.dll库文件。
最后解决方案:重新安装了QT5.5,用插件搭到VS2012上,用着很方便。感觉前期的这个问题是因为版本的问题。