VS安装QT后运行环境所需配置 git
安装好QT和QT在VS下的插件以后: github
1.打开VS,找到QT5→QT Option,以下: shell
2.配置电脑环境变量,在系统变量→Path下增长QT的动态库所在文件夹,也就是bin文件夹路径: windows
QT使用QCustomplot库 api
官网下载:http://www.qcustomplot.com/ svg
直接下载QCustomplot,而后把.h文件和.cpp文件添加到工程便可。 测试
QT使用QwtPlot库 ui
官网下载:http://qwt.sourceforge.net/ spa
打开VS2013(或者其余版本)的VS命令提示符,以下: .net
而后转到qwt文件夹,输入以下命令开始编译:
cd E:\QWT
qmake qwt.pro
nmake
----------漫长的等待-----------
cd designer
qmake designer.pro
nmake
----------漫长的等待-----------
cd ..
cd examples
qmake examples.pro
nmake
----------漫长的等待-----------
编译完成以后,开始配置:
(1)将E:\QWT\lib下的qwtd.dll、qwt.dll拷贝到QT路径的bin文件夹下,将qwtd.lib、qwt.lib拷贝QT路径的lib文件夹下。
(2)将E:\QWT\designer\plugins\designer目录下的qwt_designer_plugin.dll和qwt_designer_plugin.lib拷贝到QT路径的\plugins\designer目录下。
(3)将E:\QWT\src目录下的全部.h和.cpp放入一个空文件夹QWT中,再将该文件夹拷贝到QT路径的include目录下。
(4)在VS中C/C++->预处理器:预处理器定义里面添加QWT_DLL。不添加这步,使用时编译会报错,由于qwt采用动态库抛出类的方式将QwtPlot供使用者使用,必须定义QWT_DLL才能使用qwt的抛出类。(注意,若是使用静态编译的qt库,并用静态版本的qt的qmake生成的qwt静态库的话,是不须要QWT_DLL的,添加了反而会报错)
QT使用QwtPlot3D库
从https://github.com/sintegrial(http://sintegrial.com/ 已经失效)下载最新版的QwtPlot3D,这个不是官方原版,是另外一个团队修改的,支持QT5.3.
解压文件到某个路径,注意,路径不能有中文。
1.找到src文件夹,打开src.pro,用qt creater分别在debug和release模式下进行构建,分别会获得两个qwtplot3d.lib,一个是debug版本,一个是release版本,为了区分,把debug版本获得的命名为qwtplot3dd.lib(注意,这两个库是静态库,不一样于动态库里面的lib,因此不须要dll)。
2.把qwtplot3dd.lib和qwtplot3d.lib拷贝到QT路径的lib文件夹下面。
3.把qwtplot3d的全部头文件拷贝到一个文件夹Qwt3D中,再把这个文件夹拷贝到QT路径的include目录下。
4.以后的设置就是在VS的连接器->输入->附加依赖性中添加qwtplot3dd.lib或者qwtplot3d.lib。
QT静态发布
首先参考此文http://blog.csdn.net/wwkaven/article/details/37668859,获取编译的结果以后。而后把环境变量中的path添加编译结果的bin路径,对qwt采用动态编译相似的方式编译(注意,此时不要存在两个qmake的路径,虽然我没有测试,可是可能会有问题,因此最好一次只有一个qmake的环境变量),不过此时须要修改qwtconfig.pri里面的一项,就是把带DLL的那一行注释掉。而后到qwt文件夹下qmake,nmake。
而qwtplot3d没法进行静态编译,因此为了发布程序,把全部的.h文件盒.cpp文件所有放到项目中去。
若是你原有的程序是用动态版本的qt建立的,在VS中更改到静态版qt须要先设置qt5->qt option,里面添加动态版的路径,而后右键项目:
进行change solution's ..,选择动态版的qt。此时程序就会更新QTDIR,不然不会更新QTDIR。
以后,就须要修改附加依赖项啥的,首先是附加库目录,须要根据状况加入plugin/文件夹下的模块路径,其中plugin\platforms是必须的,其余视状况而定,
对于插件,不只要导入lib,还要进行插件声明:
#include <QtPlugin> #ifdef _DEBUG //Debug mode #pragma comment (lib,"Qt5PlatformSupportd.lib") #pragma comment (lib,"qwindowsd.lib") #pragma comment (lib,"windowsprintersupportd.lib") #pragma comment (lib,"qoffscreend.lib") #pragma comment (lib,"qminimald.lib") #pragma comment (lib,"qmngd.lib") #pragma comment (lib,"qsvgd.lib") #pragma comment (lib,"qicod.lib") #pragma comment (lib,"qjp2d.lib") #else //Release mode #pragma comment (lib,"Qt5PlatformSupport.lib") #pragma comment (lib,"qwindows.lib") #pragma comment (lib,"windowsprintersupport.lib") #pragma comment (lib,"qoffscreen.lib") #pragma comment (lib,"qminimal.lib") #pragma comment (lib,"qmng.lib") #pragma comment (lib,"qsvg.lib") #pragma comment (lib,"qico.lib") #pragma comment (lib,"qjp2.lib") #endif Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) Q_IMPORT_PLUGIN(QICOPlugin) Q_IMPORT_PLUGIN(QJp2Plugin) Q_IMPORT_PLUGIN(QSvgPlugin)
而后,若是是直接用静态版生成的项目,不须要对连接器->输入进行修改,而若是是从动态版更改到静态版,须要检查此项,通常会须要以下:
kernel32.lib
user32.lib
shell32.lib
uuid.lib
ole32.lib
advapi32.lib
ws2_32.lib
gdi32.lib
comdlg32.lib
oleaut32.lib
imm32.lib
winmm.lib
qtmain.lib
Qt5Core.lib
Qt5Gui.lib
Qt5Widgets.lib
Qt5PrintSupport.lib
Qt5OpenGL.lib
opengl32.lib
glu32.lib
qwt.lib
Qt5PlatformSupport.lib
Qt5Svg.lib
最后运行编译便可。