⑴ qtcreater 怎么设置msvc编译
该方法可以使用在win 8.
1、编译Qt 5.0.2,编译器为Msvc 2012
2、下载Cdb.exe,这个是给控制台调试代码用的,Msvc用的调试器是WinDbg,所以安装vc是没有Cdb的,网址:
注意:现在上面说的网址已经不能用了,沿用上面的网址进去下载 WDK 8,这个对应的VS 2012 for win 7, 这个安装很慢。或者下载2010的对应的CDB,下载网址:
C:\WinDDK\7600.16385.1\Debuggers
这个下面是有CDB的。
3、完成后安装。
4、打开Qt Creator,在"工具"->"选项"里面如下设置地方点击自动检测即可:
⑵ qt-vs-tools-msvc2013-2.1.1怎么安装
下载安装qt
安装完成后打开VS2013,可以看到菜单栏上多出了一个“QT5”选项。
单击上图红色标框中的“Qt options”,并在下图中配置其环境变量。
变量名:VS2013_QT
路径:F:QtQt5.3.05.3msvc2013_64_opengl(QT5的安装目录)
完成目上步操作后即可在VS2013中新建QT项目,例如新建“QTEST”。
当编译时会出现如下错误:
Qt5Widgetsd.lib(Qt5Widgetsd.dll) : fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突
右击QTEST项目,选择“属性”---“链接器”--“高级”---“目标计算机”,更改目标计算机为MachineX64 (/MACHINE:X64),并把平台改成“活动(x64)”。
接下来继续配置QT5插件,单击下图中的QT工程设置把版本改为VS2013_QT5
再次编译即可成功运行
⑶ win7 安装qt vs2010配置boost,CGAL等
一、安装cmake
1、这一步比较简单,下载安装最新版本cmake-2.8,开始如下安装
2、注意这里选择第二个选项,为所有的用户添加系统变量
3、选择安装到目录 F:\CMake 2.8,个人建议最好安装在C盘目录下。
4、安装完毕后确认一下系统变量中有没有红色框中的目录,若没有需要手动添加进去。
5、cmake安装完毕!
二、安装Boost库
1、下载最新版本,当前为boost_1_55_0
2、按 Win+R组合键输入cmd进入命令窗口:
切换当前目录为boost的安装目录(G:\boost_1_55_0),输入bootstrap.bat
3、执行完上述命令后会在安装目录下生成如下exe文件
4、继续在DOS窗口中输入bjam.exe,程序会根据你当前安装的编译环境(vs2010,vs2012,vs2013)等自动选择与之相适应的库文件和包含文件等。
此过程大概需要20分钟左右。根据下面第二个图片可以算出我的编译环境为MSVC-12.0即VS2013.
5、20分钟左右后可以看到如下界面,说明Boost库配置完成
三、安装CGAL
1、下载CGAL,这里我下载的是CGAL-4.4这个版本(当前最新的)
2、安装位数选择32位
如果选择64位进行安装,则会在以后配置完毕后出现类似“无法识别的外部符号。。。”等问题,很难进行正确配置。所以这里最好全部选择32位进行安装。
3、安装目录我选择C:\Program Files\CGAL-4.4
安装在其他目录时可能会出现用Cmake编译时出现好几外错误。可以尝试通过安装在C盘进行解决。
4、选择如下几项,单击下一步
5、安装完成后可能会出现如下提示,则需要手动添加F:\CGAL-4.4\auxiliary\gmp\lib到Path变量中
6、此时CGAL安装完成
四、用Cmake配置CGAL库
1、打开Cmake软件选择如下目录,注:两个目录是相同的
2、单击“config"-选择如下编译器(默认是32位,与前面安装软件一定要保持一致)
3、单击确定后,出现如下界面说明配置成功
4、找到如下图的这一项,选中,再次单击"config"进行配置
5、单击Generate,此时界面应如下。
6、此时在CGAL安装目录下出现如下文件:CGAL.sln
7、打开此文件,此时编译器会自动组建一个解决方案。如下图
8、选择32位debug模式,按F7进行编译,编译完成后如下图所示,表明CGAL至此完全配置成功。
五、举例测试CGAL
新建一个控制台应用程序,并添加如下代码
#include <iostream>
#include <boost/format.hpp>
#include <QtGui>
#include <CGAL/Qt/GraphicsViewNavigation.h>
#include <QLineF>
#include <QRectF>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QGraphicsScene scene;
scene.setSceneRect(0,0, 100, 100);
scene.addRect(QRectF(0,0, 100, 100), QPen(QColor(255,0,0)));
scene.addLine(QLineF(0,0, 100, 100));
scene.addLine(QLineF(0,100, 100, 0));
QGraphicsView* view = new QGraphicsView(&scene);
CGAL::Qt::GraphicsViewNavigation navigation;
view->installEventFilter(&navigation);
view->viewport()->installEventFilter(&navigation);
view->setRenderHint(QPainter::Antialiasing);
view->show();
return app.exec();
}
添加包含库目录,操作如下图,注意红色框中的添加内容
添加附加库目录,操作如下图,注意红色框中的添加内容
直接编译运行此时会出现如下错误,别急,我们离成功只差一步了
>test.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QColor::QColor(int,int,int,int)" (__imp_??0QColor@@QAE@HHHH@Z),该符号在函数 _main 中被引用
1>test.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QBrush::QBrush(void)" (__imp_??0QBrush@@QAE@XZ),该符号在函数 _main 中被引用
1>test.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QBrush::~QBrush(void)" (__imp_??1QBrush@@QAE@XZ),该符号在函数 _main 中被引用
1>test.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QWidget::show(void)" (__imp_?show@QWidget@@QAEXXZ),该符号在函数 _main 中被引用
1>test.obj : error LNK2001: 无法解析的外部符号 "protected: virtual bool __thiscall QWidget::winEvent(struct tagMSG *,long *)" (?winEvent@QWidget@@MAE_NPAUtagMSG@@PAJ@Z)
1>test.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __thiscall QWidget::windowActivationChange(bool)" (?windowActivationChange@QWidget@@MAEX_N@Z)
1>G:\Cpp\Midaxis\CGAL512\Debug\CGAL512.exe : fatal error LNK1120: 81 个无法解析的外部命令
添加附加依赖项。
选择“链接器”---“输入”,在其中输入如下添加LIB文件
phonon4.libQAxContainer.libQtCLucene4.libQtCore4.libQtDeclarative4.libQtDesigner4.libQtGui4.libqtmain.libQtOpenGL4.lib
再次编译运行,即可大功告成了!
⑷ vs编译cv4.5必须要cuda环境嘛
先说一下我的需求:在win10中,显卡是3070的机器上,使用的IDE是Qt,实现基于open pose的旗语的检测。说白了就是自己编译一个能使用cuda加速的一个opencv,利用opencv的dnn模块的接口实现对深度学习模型的调用。在这里只记录一个环境配置的过程。
本机环境:win10 RTX3070 Qt 5.9.2 msvc编译器
下面只记录比较重要的一些过程,给大家一些参考。
1、第一步,先安装QT。大部分安装Qt,就自带了里面的mingw编译器,但是想要编译能用cuda加速的opencv,我使用mingw编译器,没有把opencv编译成功。我猜大概是mingw搞定不了opencv +cuda的编译(不确定,猜想)。所以就安装vs了。肯定需要安装vs2015及其以上的版本,15,17,19三个版本中,查看了很多资料,了解到应该是2017在编译opencv中最不容易出现问题。最好是用vs2017。
如果你在安装QT过程中没有选择msvc2017的话,就应该得重新安装一下了。Qt配置msvc编译器的教程网络一下就可以。安装完记得配置一下QT 的环境变量。记住根据自己的Qt安装位置来配置。然后运行一下Qt能用说明第一步就完成了。
⑸ VS里正常的代码在QT里执行有问题要怎么弄好QT的
在安装 QT+MSVC环境的时候,该出的问题我想都让我碰上了。
问题1 :jom.exe 崩溃,构建不通过。
jom: ......... Error 219:19:11: 进程"E:QT1ToolsQtCreatorinjom.exe"退出,退出代码 2 。Error while building/deploying project untitled (kit: Desktop Qt 5.5.1 MSVC2015 64bit)When executing step "Make"这个我没有出现什么cl不是内部命令的提示,至于使用nmake就更错了,nmake运行就出问题,估计是安装时nmake就有问题了。所以不是环境变量之类的错误,由于我前期先安装的QT+MinGW,后来需要MSVC才安装的vs2015,估计是这个安装先后顺序导致一些配置不对,反正我的kit配置都没有错误提示了也不行,干脆直接全卸了重新来。这次OK了,msvc,mingw都能用了。后来看到有初始化msvc编译环境的脚本,如果不行就先使用下试试,没准就OK了,不用浪费时间重新安装(安装时间好长呀)
1
问题2 -1: error: LNK2019: 无法解析的外部符号 **,该符号在函数 ** 中被引用,看图说话。
无法解析的外部符号说明,该函数的库或头文件没有被引入,比如下面
qmfcapp.obj : error LNK2019: 无法解析的外部符号 __imp_SetWindowsHookExW,该符号在函数 "public: static bool __cdecl QMfcApp::pluginInstance(void *)" (?pluginInstance@QMfcApp@@SA_NPEAX@Z) 中被引用在QT中找到QMfcApp::pluginInstance函数查看了下使用到外部函数的地方SetWindowsHookEx,点击可以跳转到头文件WinUser.h,那就是库没有了。由于原来是MinGW,内部的库都导入了,转到MSVC后一些自带的系统库没有加进来。网络查找SetWindowsHookEx该函数所需库User32.lib,在电脑上搜了。然后在.pro工程文件中右键加入库如下
把加后缀的勾删了,我这window下好像没有专门的d版调试库。
OK。这时在库里就自动加上了下面这几行。
1
2
3
4
1
问题3 User32.Lib:-1: warning: LNK4272:库计算机类型“X86”与目标计算机类型“x64”冲突
刚开始时找错了库,找到的是32位编译出来的user32.lib库,后来直接到系统盘window下找到了64位的就OK了。
问题4 This application has requested the Runtime to terminate it in an unusual way
这个在我安装了vs2015就出现了这问题,没装时都好好的。这个上一篇有讲到,这次又遇上了,我真的是无语了,也是莫名其妙的又不报了。具体怎么弄好的我也摸不着,vs2015又装了VC++里的所有部分(MFC类,兼容XP什么的两个,原本就一个VC++编译器的),到qt安装目录里有个vcredist_msvc2015_x86运行,重启后也一样,然后还有什么,重新拷贝库?一堆事情,一个个试都不好,换vb,vs,突然之间就好了,可是VB来错误53,找不到dll了,vs来加载格式不正常,这个看问题5。但有一点可以肯定—-错误与下面的dll无关,这个是depends找不到有关的bug。
问题5 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
这里是目标平台和库不一致,需要注意下,用MinGW编译的去MinGW版的QT库里找对应的库(debug版和release版),然后要注意的是它是32位的,所以vs里只能选择X86平台。貌似没有找到有64的MinGW版本的QT.
而MSVC我下的是64的,所以只能选则X64平台。拷贝库也是到msvc版的QT库里找。如果库位数不对,会呈粉红色。
问题6 其他信息: 无法加载 DLL“bstdll.dll”: 找不到指定的程序。 (异常来自 HRESULT:0x8007007F)。
换成X86的拿mingw编译出来的试出这问题,拿到在VB下就是 实时错误53:找不到DLL的意思了。这个估计就是跟安装了vs2015的问题有关了。安装了vs2015后VC++估计把我一些32位的库给弄掉了,怎么都无法成功了。尝试下个msvc 32位的编译看是否一样。
问题7 error: C2373: “saveImage”: 重定义;不同的类型修饰符
同样的代码用64的编译器和MinGW都没问题,换成32位的msvc就出问题了,
.h文件
.cpp文件
void saveImage(const char *file){平常看到的讲解导出dll都没要求实现里也要加上__stdcall,这里报错就是这个原因,.cpp里也加个__stdcall就OK了。
1
2
3
1
问题8 其他信息: 无法在 DLL“xxx.dll”中找到名为“xxx”的入口点。
到这一部至少说明,dll可以被找到,目标平台和生成的dll也是一致的,只是入口函数找不到,可能是导出名不对了,depends查看下果然名字被过度修饰了。变成了_function@bytenum形式。
怎么解决我不知道msvc的编译器有没有这个选项,直接改成这个名字算了。
问题9 发生了 PInvokeStackImbalance
对PInvoke函数的调用导致堆栈不对称。
先看看是不是调用协议不对,vb是__stdcall,vc++默认用__cdecl,如果一致了还出错,那可能是long要改成int32,这个尝试改下就行了。我就是这么解决的。
到此,无论是64还是32位都能用了。坑好多啊。MinGW版不知道为什么就是错误提示找不到dll,装了个VS2015麻烦这么多。有知道的大神可以解惑下。
有些人说MinGW版编译的dll不能在window下用是有问题的,反正我不装VS2015时一切都好好的。如上篇所述,而且也在别人机子上试过。现在没时间找这个问题了,能用就行了。
⑹ 如何在vs 2010中使用qt编辑框架
Qt的最大好处是跨平台,可以看到上图,Qt可以支持windows,Mac os,linux,embedded linux, wince/mobile,symbian,诺基亚最新的Megoo那也是不在话下了,由于公司最近有些项目要求跨平台的支持,原来的GIS引擎是基于Windows开发的,虽然没有用MFC,但是由于绘图引擎这块使用的GDI+,所以跨平台是非常困难的。所以为了支持跨平台以及在可预见的将来的跨平台的需求,决定将绘图引擎这块在Qt的基础上进行重构,并使用Qt开发一套基于QtGis引擎的地图项目管理应用程序。
我在博客中将会同步将开发这个应用程序的步骤展示出来,希望能通过这个系列的博客,来展示Qt开发应用程序的便利性以及展示我们公司GIS引擎的强大能力。应用程序的源代码将会同步放在每篇教程内提供下载。Gis引擎将通过提供SDK的方式方便大家学习及开发。
第一篇. 配置Qt的windows开发环境,并通过VS2010进行开发。
1. 下载Qt的安装包和VS2010的Qt插件,大家可以到下面的地址进行下载(下面的下载都是基于Windows的,如果是其他环境的操作系统可以到这里下载).
Qt SDK: http://qt.nokia.com/downloads/sdk-windows-cpp
VS2010开发插件: http://qt.nokia.com/downloads/visual-studio-add-in
2. 安装Qt SDK
安装其实很简单了,基本上一路回车即可,主要是要注意下Qt的安装路径最好安装在全英文路径而且中间没有空格, 安装好后,可以运行开始菜单里面的Qt Demo,直观感受下Qt的强大功能!
界面非常炫酷
3. 安装Qt的VS开发插件
同安装Qt SDK一样,一路上回车即可,安装后在VS2010上新增一菜单Qt,如图所示
4. 编译Qt
Qt默认使用mingw进行编译,如果要使用VS2010开发,需要将Qt重新编译。
进入开始菜单Microsoft Visual Studio 2010,Visual Studio Tools,Visual Studio Command Prompt (2010),需要注意的是,这里面必须是使用Visual Studio Command Prompt (2010),不能使用CMD的Dos窗口
进入Qt的安装目录后,执行CD Qt,进入Qt的根目录
运行命令 configure -platform win32-msvc2010,o(选择opensource模式)回车,Y(同意license)回车
接着就会自动配置Qt的编译环境,等配置结束后,运行nmake,回车,Qt就会开始漫长的编译过程,这段时间非常长,需要4个小时以上,大家可以在晚上睡觉的时候进行编译。
5.配置VS2010的Qt开发环境(VS2010最好是英文版本,Qt对VS2010中文版本可能支持的不好)
等Qt编译好后就可以配置VS2010的开发环境了,进入VS2010,选择Qt菜单,Qt Option,进入下图界面
点击Add,添加Qt的安装目录,并取名字,我这里使用Qt的发现版本最为名称,选择OK后即可。
6.新建或者导入Qt项目
可以通过在VS2010新建一个Qt项目
导入Qt的Pro项目
Pro是Qt自带编译器Qt Creator的项目工程文件,如果想使用VS2010开发则需要将原有项目的Pro导入到VS2010的项目文件中,可以使用菜单Qt-Open
这样我们的Qt开发环境就搭建好了,大家可以将Qt目录下的Example和Demo下的例子的运行看一遍,体验下Qt的强大和便捷,Enjoy!