Windows下qwtplot3d编译(win7+qt5.7.1+vs2013)

qwtplot3d编译

目前在学习3d相关技术,发现qwtplot3d这个3d图形库,到官网下载(http://qwtplot3d.sourceforge.net/web/navigation/feature_frame.html),我下载的0.2.7版本。
我用的电脑是window7 系统,开发工具是qt5.7.1+vs2013。在网上参考了一篇文章(http://blog.sina.com.cn/s/blog_668aae780101kqcz.html),但是在我编译时貌似有些不一样,在此记录一下我的编译步骤以及遇到的问题。

首先编译qwtplot3d库

1、用qt create 打开工程后,qmake失败
解决方法:修改qwtplot3d.pro文件中“win32:TEMPLATE= vclib”改为“win32:TEMPLATE= lib”
2、执行清除->qmake->编译出现错误: 错误:'gluErrorString' was not declared in this scope...
解决方法:在错误的文件头部添加#include "GL/glu.h"
3、再编译出现错误:无法解析的外部符号"_imp__glBegin@4"等
解决方法:在pro文件中添加opengl库的引用LIBS+= -lopengl32
4、再清除->qmake->编译,成功生成qwtplot3d.dll,如果发现没有生成.lib文件,就在
pro文件中define后面 添加Q_WS_WIN ,再次清除->qmake->编译后会成功生成qwtplot3d.dll和qwtplot3d.lib

注意:如果遇到’stderr’ was not declared in this scope 和 ‘fprintf’ was not declared in this scope错误就在产生错误的文件头部添加#include <stdio.h>(我没遇到这个问题微笑

再编译qwtplot3d例子

1、打开common.pro,修改几个地方,如图:

2、清除->qmake->编译,弹出错误:找不到../../lib/qwtplot3d.lib
解决方法:将qwtplot3d生成的lib文件夹目录复制到qwtplot3d.pro的同目录下
3、再次编译,报error LNK2001: 无法解析的外部符号"public: static struct QMetaObject const Qwt3D::SurfacePlot::staticMetaObject"
解决方法:找到报错的文件的头文件,找到继承SurfacePlot的类,将Q_OBJECT禁用再次编译就成功了

运行效果:
autoswitch


axes



特殊问题:
编译成功后 我运行example中的程序,发现运行出来的看不到画面,一片黑。我怀疑是opengl库有问题,于是我找个OpenGL的例子试试,也是黑的,但是我放到另一台电脑上运行有画面,如下图:

黑的画面的系统是win7的,有画面的是win10,于是我找另一台win7电脑,是可以的,难道是我显卡驱动有问题?于是我更新显卡驱动,结果还是不行。那我重装系统。。。。。。。(win7)
还是不行。再重装(win10)还是不行。看来问题与系统无关,怀疑是电脑问题,然后发现我的电脑是双显卡的,我就到bios中查看设置,当前设置的是自动切换,我把它设置成独立显卡再启动后,发现程序居然可以看到画面了...真是无语了,害我装了一天系统。
在此记录下来,如果有人遇到和我一样的问题,可以参考一下。


  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值