Qt5.7.0 mingw+qwtplot3D 编译


一、基本编译问题

在安装的过程中却遇到了很多的问题。咨询了Google中大量的帖子,发现按照他们说的方法根本没法解决我的实际问题。研究了整整宝几天,总算是编译通过,解决了所有的问题。下面将通过重现我的安装编译过程,及解决问题的方法来告诉大家如何才能正确的编译qwtplot3D开发库。

1、从网上下载qwtplot3D的最新版本:http://qwtplot3d.sourceforge.net/

2、解压qwtplot3d-0.2.7.zip到C盘根目录下(注意:路径中不能带有中文汉字)。

3、打开C:\qwtplot3d-0.2.7\qwtplot3d,将会看到qwtplot3d.pro文件。

4、用QtCreator打开qwtplot3d.pro文件,并执行编译命令会出现如下如下错误:No rule to target ‘Makefile.Debug’. Stop.

解决方法: 双击并打开上图左侧中的qwtplot3d.pro文件,修改该文件部分内容: win32:TEMPLATE = vclib
修改为: win32:TEMPLATE = lib

5、修改完成后,再次点击编译运行。会再次出现错误:’stderr’ was not declared in this scope 和 ‘fprintf’ was not declared in this scope。 如下图所示:

解决方法: 打开左侧Source->src->qwt3d_function.cpp文件。并在顶部添加语句: #include “stdio.h”

6、再次编译。即可顺利完成qwtplot3d工程的编译,不会再遇到错误。此时,打开C:\qwtplot3d-0.2.7\qwtplot3d\lib文件夹。会看到生成两个动态库文件:libqwtplot3d.a和qwtplot3d.dll。这就是编译好的qwtplot3d的动态库文件。作为开发而言,就可以直接使用。当然,我们不仅仅是希望编译生成动态库,还希望将qwtplot3d自带的Demo编译并运行通过。没问题,继续看下面的。


二、我碰到的编译问题

上面6个步骤为网上的主要解决方案,这里我碰到的是可以找到各个include文件,但是为引用的lib文件未找到,报错如下:

\qwtplot3d\src\qwt3d_axis.cpp:120: error: undefined reference to `_imp__glBlendFunc@8'
\tmp\qwt3d_axis.o:-1: In function `ZN5Qwt3D4Axis8drawBaseEv':
\qwtplot3d\src\qwt3d_axis.cpp:178: error: undefined reference to `_imp__glBegin@4'
\qwtplot3d\src\qwt3d_axis.cpp:179: error: undefined reference to `_imp__glVertex3d@24'
\qwtplot3d\src\qwt3d_axis.cpp:180: error: undefined reference to `_imp__glVertex3d@24'
\qwtplot3d\src\qwt3d_axis.cpp:181: error: undefined reference to `_imp__glEnd@0'
//...
//外加300+的错误

把Google翻阅好几遍,总于看到引用opengl相关的,原因是没有引入gl相关的库文件,但是这个文件名称不是按照套路来,是libgl.a或者gl.lib之类的,是OpenGL32.a,猝不及防啊!!

扫描二维码关注公众号,回复: 2850180 查看本文章

需要在qwtplot3d.pro下加入:

LIBS += -lopengl32 -lglu32 -lglut

再编译就没问题了。

猜你喜欢

转载自blog.csdn.net/VVBBBBB/article/details/72353718
今日推荐