最近刚进入新公司,原先使用MFC做界面,而新公司使用QT4.8.4+VS2010开发界面,在配置的环境中没有遇到太大的问题,技术问题除外,在家中配置相同环境,运行简单的例子发现遇到不少问题,感谢internet,或许不是最好的解决办法,但是至少能相继的解决了,下面进入正题
Qt4.8.4的安装和VS插件的安装大家可以百度下,应该不难可以找到答案,这里就不列举了。
问题一、如果在VS2010等系列VS产品中添加空的QT项目
来自《C++ GUI QT4》中第一章中有说明。具体步骤如下:假设文件文件名为hello.cpp
<1>在目录中新建文件夹名称为hello,在其目录下用记事本添加文件,重命名为hello.cpp
<2>用命令进入当当前文件夹,运行qmake -project; 生成了hello.pro文件。 是否出现qmake不是内部或外边命令错误?是请看问题二。
<3>在输入qmake hello.pro;
<4>关键一步 qmake -tp vc hello.pro;------运行完后发现在目录下已经有了VS的项目文件了(VS2010为 .vcxproj文件),这样只要用相应的VS打开即可。
问题二、qmake 不是内部或外部命令
没有在系统环境变量中添加Qt的bin文件,假设你安装Qt在D:\Qt\4.8.4;
则以win7为例:电脑->属性->高级系统设置->环境变量->系统变量;找到path变量,在其后面添加D:\Qt\4.8.4\bin 因为qmake就在bin里面,然后确定。这里笔者感觉很 郁闷的是我已经添加进去了,还是不行,百度了n久也只是说到笔者的操作上面,有个地方说到系统或许没有更新path变量值,于是重启了一次电脑,果然通过。
问题三:使用QT的designer 设计了一个对话框出现连接错误
假设类名为GotoCellDialog
1>gotocelldialog.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall GoToCellDialog::metaObject(void)const " (?metaObject@GoToCellDialog@@UBEPBUQMetaObject@@XZ)
1>gotocelldialog.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall GoToCellDialog::qt_metacast(char const *)" (?qt_metacast@GoToCellDialog@@UAEPAXPBD@Z)
1>gotocelldialog.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall GoToCellDialog::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GoToCellDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
1>debug\\Go_to_Cell.exe : fatal error LNK1120: 3 unresolved externals
具体可以参考《C++ GUI QT4》第二章书籍例子。出现该问题的原因是http://blog.csdn.net/zhenyusoso/article/details/8450906;但是我没有找到
解决方法:右击hello.h,选择“自定义生成步骤”,“常规” 这个选项,所以无从添加。于是采用比较笨的方式,cmd 进入该根目录,然后运行moc.exe GotoCellDialog.h -o moc_GotoCellDialog.cpp;在目录中出现moc_GotoCellDialog.cpp。然后添加到VS中 重新编译,通过。。。。
也可以使用http://blog.chinaunix.net/uid-15063109-id-3188521.html的方式
本文介绍了在配置QT4.8.4和VS2010环境时可能遇到的问题及解决方案,包括qmake命令不可用的环境变量设置、创建QT项目的步骤以及解决设计对话框时的连接错误。
5539

被折叠的 条评论
为什么被折叠?



