qwtplot3d+QT5.6.0+VS2013+windows10编译

参考资料: 点击打开链接     http://blog.csdn.net/qinpanke/article/details/8062517
                  点击打开链接     http://blog.csdn.net/zbc415766331/article/details/17709867
资源链接:
       QT:  点击打开链接  
       VS2013: 点击打开链接
       Windows10: 点击打开链接
       qwtplot3d:   点击打开链接

Qwtplot3d介绍:
        qwtplot3d是基于QT环境,以c++和opengl开发的三维显示库,目前,最新版为Version 0.2.7版,是在QT4的基础上编译的。具体编译方式请参考以上参考资料链接。

步骤:
      1. 以Version 0.2.7为例,将源文件解压至不包含汉字的目录。
      2. 打开目录,如下图所示:
     qwtplot3d+QT5.6.0+VS2013+windows10编译_第1张图片
      文件中dsp.dat是在windows下以命令行形式生成vs工程makefile的批处理文件,可以不予理睬。
      3.将opengl库拷贝至该目录下如下图,(也可不予拷贝,手动连接库)
      qwtplot3d+QT5.6.0+VS2013+windows10编译_第2张图片
      其中,opengl内包括gl.h glu.h glut.h 等,如下图所示:
      qwtplot3d+QT5.6.0+VS2013+windows10编译_第3张图片
      用QTCreator打开工程,修改TEMPLAT增加LIBS:(各参数代表的含义请参照我另一篇博客 Qt .pro文件部分变量解析)
      1). 由于我们编译的工程师在qtcreator下使用,所有将win32: TEMPLATE = vclib修改为win32: TEMPLAT = lib
      2) 添加工程所需的opengl库    win32: LIBS += -L$$ PWD/opengl -lglu -lglut -lopengl
     
      4.执行qmake——构建项目qwplot3d工程,此时会报错:显示找不到gluErroString,原因是项目内没有包含opengl的glu库
         解决方法:在错误所在头文件添加对应glu库,我的是 #include
      5.再次编译通过(文章没有出现参考所出现的stdio缺失),在对应的lib目录内生成了dll
       ,如下图所示:
      
                但是并没有生成lib文件,这里导出的动态库实际上是不完全的,经过查证发现,QT5以后将Q_WS_WIN宏改为了Q_OS_WIN
        点击打开链接,所以下一步是将该工程内的所有Q_WS_WIN宏改为Q_OS_WIN,保存并再次编译,我们发现现在生成了lib文件
        到此,库的编译完成,如下图所示:
       
    
使用库实现example:
        1.将lib和dll文件拷贝至你个人的库目录,我个人放置在opengl同级lib目录中,如下图所示:
       qwtplot3d+QT5.6.0+VS2013+windows10编译_第4张图片
       2.打开examples进入例子工程,其中common.pro是各子工程调用的共同设置,我们对它进行修改,即可对所有子例子工程进行修改:
由于我们采用的是QTcreator环境不是VS环境,因此需要删除QMAKE_LFLAGS += /NODEFAULTLIB:msvcrt 和TEMPLATE  = vcapp,同时
修改win32的LIBS库(也就是windows平台下的库,我们考虑到跨平台问题,我们一般对特定的库做平台限定),如下图所示:
qwtplot3d+QT5.6.0+VS2013+windows10编译_第5张图片
      2. 这里将LIBS及对应的库修改为
       LIBS += -L$$PWD/../lib -lqwtplot3d
       LIBS += -L$$PWD/../opengl -lglu -lglut -lopengl
      3.打开designerwork.h头文件,将 #include 等修改为QT5对应的头文件#include
      3.执行qmake,执行编译,链接,将dll文件拷贝至对应bin文件,运行:即可成功编译例子工程,执行情况如下图所示:
qwtplot3d+QT5.6.0+VS2013+windows10编译_第6张图片

其他说明:
       1.要用debug版本的qwplot3d库,否则会导致系统运行不成功。参考:点击打开链接  http://blog.csdn.net/yuzhiyuxia/article/details/7760917
       2. 不可以通过在qwplot3d的导出库部分人工define dllexport的形式来导出动态库,只能通过pro中定义DEFINES,否则在该动态库被掉用的时候
          调用者无法通过定义DEFINES来告诉程序这里是导入动态库的,本例中example中的DEFINES  += QT_DLL QWT3D_DLL会失效。
       3.建议在程序调试好之前,都要用debug版的dll。




你可能感兴趣的:(QT)