QT之qwtplot3d使用(二)

本次介绍qwtplot3d编译的注意事项和该库的使用方法。

qwtplot3d编译配置

qt项目的配置在.pro文件中书写,该文件的详细语法内容可以参考下面这篇博客:
Qt 之 pro 配置详解
以下仅说明和本项目相关的内容:

  1. 因为使用到了openGL库,需要在pro文件中添加声明,可以在文件最后添加一行
LIBS += -lopengl32 -lGLU32

为了编译之后生成lib和dll文件,在 win32:dll:DEFINES 后添加Q_WS_WIN 修改后如下:

win32:dll:DEFINES    += QT_DLL QWT3D_DLL QWT3D_MAKEDLL Q_WS_WIN

原有的CONFIG声明在Debug下是正常的,但是在release下则会出错,修改如下:

CONFIG           += qt warn_on thread static

具体原理还没有搞懂,留待解决。
2. 原代码中在qwt3d_global.h文件中缺少头文件声明,添加后如下:

#ifndef QWT3D_GLOBAL_H
#define QWT3D_GLOBAL_H
#include <WINDOWS.H>
#include <GL/GL.H>
#include <GL/GLU.H>
#include <qglobal.h>
#if QT_VERSION < 0x040000
#include <qmodules.h>
#endif

3 生成的库文件为lib和dll,注意msvc、qt版本一定要与调用库的项目相同,并且release或是debug也要相同,否则会报找不到函数的错。

库文件的使用

新建要调用qwtplot3d库的项目,配置其pro文件,正确调用qwtplot3d库需要项目中包含qwtplot3d.dll,qwt3d.lib以及qwtplot3d库的头文件,在pro文件中定义三者的路径,如下:

TEMPLATE     = app
CONFIG      += qt warn_on thread release
UI_DIR = tmp
MOC_DIR      = tmp
OBJECTS_DIR  = tmp
INCLUDEPATH    += ../include #头文件目录
DEPENDPATH	= $$INCLUDEPATH
DESTDIR = ../bin #生成程序的目录
LIBS += -lopengl32 -lglu32
unix:LIBS += -lqwtplot3d -L../../lib
linux-g++:QMAKE_CXXFLAGS += -fno-exceptions
QT += core network  widgets
win32{
  LIBS += ../lib/qwtplot3d.lib #库文件
  #TEMPLATE  = vcapp #该行注释掉
  DEFINES  += QT_DLL QWT3D_DLL
  RC_FILE = icon.rc
 # contains (CONFIG, debug)  {
    #QMAKE_LFLAGS += /NODEFAULTLIB:msvcrt
 # }

}

qmake之后,include等文件夹会新建出来,将qwtplot3d库中include文件夹中的所有文件复制进去,将build文件夹中lib文件夹中的文件复制到项目文件夹中的lib文件夹中,然后就可以编译了。但是要运行的话还需要将qwtplot3d.dll和qwtplot3d.lib复制到bin文件夹中,即与exe同一个文件夹。

修改后的qwtplot3d库托管在gitee平台:
https://gitee.com/editorfree/qwtplot3d

Logo

鸿蒙生态一站式服务平台。

更多推荐