zoukankan      html  css  js  c++  java
  • QT5.3+VS2013+QCustomPlot+QwtPlot+QwtPlot3D使用环境配置

    VS安装QT后运行环境所需配置

        安装好QT和QT在VS下的插件之后:

    1.打开VS,找到QT5→QT Option,如下:

    2.配置电脑环境变量,在系统变量→Path下增加QT的动态库所在文件夹,也就是bin文件夹路径:

    QT使用QCustomplot库

        官网下载:http://www.qcustomplot.com/

        直接下载QCustomplot,然后把.h文件和.cpp文件添加到工程即可。

    QT使用QwtPlot库

        官网下载:http://qwt.sourceforge.net/

        打开VS2013(或者其他版本)的VS命令提示符,如下:

        然后转到qwt文件夹,输入如下命令开始编译:

    cd E:QWT

    qmake qwt.pro

    nmake

    ----------漫长的等待-----------

    cd designer

    qmake designer.pro

    nmake

    ----------漫长的等待-----------

    cd ..

    cd examples

    qmake examples.pro

    nmake

    ----------漫长的等待-----------

    编译完成之后,开始配置:

    (1)将E:QWTlib下的qwtd.dll、qwt.dll拷贝到QT路径的bin文件夹下,将qwtd.lib、qwt.lib拷贝QT路径的lib文件夹下。

    (2)将E:QWTdesignerpluginsdesigner目录下的qwt_designer_plugin.dll和qwt_designer_plugin.lib拷贝到QT路径的pluginsdesigner目录下。

    (3)将E:QWTsrc目录下的所有.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/文件夹下的模块路径,其中pluginplatforms是必须的,其他视情况而定,

      对于插件,不仅要导入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

      最后运行编译即可。

  • 相关阅读:
    java中的锁
    CAS机制与自旋锁
    volatile关键字的特性及证明
    java中并发下的集合类
    数据库的分库分表
    浅入理解JVM
    99乘法表
    JAVA实现简单的时间刷新使用线程
    线程的优先级
    线程礼让
  • 原文地址:https://www.cnblogs.com/yanqi0124/p/3951602.html
Copyright © 2011-2022 走看看