目標:需要將一個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上,用着很方便。感覺前期的這個問題是因為版本的問題。
