最近在学习
Qt5的时候遇到了这个要命的
问题,求大家看看如何解决哈,我尽量描述得详细一些:
1、Qt来源:在
http://qt-project.org/downloads上下载的Qt 5.0.1 for Windows32-bit (VS 2010, 481 MB) 和Visual Studio Add-in 1.2.0 for Qt5,
安装好,用QtCreator和VS2010写普通的Qt程序没问题,写自定义
插件时候出了问题;
2、在VS2010下新建Qt5 DesignerPlugin,名字叫MyPanel,生成了两个类MyPanel和MyPanelPlugin,Release下
编译后生成MyPanel.dll和MyPanel.lib,将这两个
文件拷贝到D:\Qt\Qt5.0.1\5.0.1\msvc2010\plugins\designer下;
3、在VS2010下新建Qt5 Application,名字叫TestApp,baseclass为QMainWindow,编译运行空项目,成功;
4、用Qt Designer打开TestApp.ui,从控件栏里面将MyPanel拖入,改名字为panel,保存;
5、编译运行TestApp,在ui_testapp.h中报告:无法打开包括文件:“mypanel.h”,以及一系列的无法打开Qt的源文件,将工程转换为QMake生成,Qt的各个源文件都可以打开了;
6、将mypanel.h文件copy到\TestApp\GeneratedFiles下,编译,报错:testapp.obj :error LNK2019: 无法解析的外部符号 "public: __thiscall MyPanel::MyPanel(classQWidget *)" (??0MyPanel@@QAE@PAVQWidget@@@Z),该符号在函数 "public: void__thiscall Ui_TestAppClass::setupUi(class QMainWindow *)"(?setupUi@Ui_TestAppClass@@QAEXPAVQMainWindow@@@Z) 中被引用;
7、将MyPanel.dll和MyPanel.lib拷贝到所有可能目录,并且在TestApp的属性中,链接器-输入-附加依赖项中,将MyPanel.lib加入,仍然报6中的
错误。
至此,完全一筹莫展了。
附加:因为用的是Qt5的VS插件,所以
没有.pro文件可以修改,不过我也用Qt Creator试过,也无法通过。
这个插件问题,Qt4和Qt5的差别是很大的,之前用Qt Creator生成插件都编译不过,费了很大力气终于到这里了,还是无法前进。恳请各位高手指点一下下!