VS2012 使用QCustomPlot等三方库如何配置

前言

Qt提供了显式和隐式导入第三方库方法,本文只介绍显示导入方法。

一般的第三方提供的库文件包括ControlCAN.h,ControlCAN.dll和ControlCAN.lib。将ControlCAN.h和ControlCAN.lib放入当前工程目录(其他任何位置均可),ControlCAN.dll文件放在debug和release文件夹中。

QtCreator创建工程项目 使用Qt 第三方库,引用第三库QCustomPlot:
下载可以去QCustomPlot首页,只需在项目中添加.h 和.cpp文件(⚠️在项目中引入并且要在项目文件目录下导入三方类文件),且在 .pro文件中添加下面两行代码

QT    += core gui;
greaterThan(QT_MAJOR_VESION,4):QT += widgets printsupport;//Qt 5.0以上版本支持打印
VS2012环境下引入第三方类库QCustomPlot

方法一:
将下载的qcustomplot.h和qcustomplot.cpp加入到你的工程中。在你要使用qcustomplot的文件中:

[objective.cpp]
#include "qcustomplot.h"

Debug和Release中未添加Qt5PrintSupportd.lib动态链接库,因为:.lib是dll在编译、链接成功之后生成的文件,作用是当应用程序调用dll时,需要将该文件引入应用程序,否则产生错误

VS2012 使用QCustomPlot等三方库如何配置_第1张图片
报错信息

解决办法:

"Properties->Configuration Properties->Liker->Input->Additional Dependencice"添加“Qt5PrintSupportd.lib”

“项目属性 -> 配置(C): Debug”
“项目属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项”里面添加
“Qt5PrintSupportd.lib”;
“项目属性 -> 配置(C): Release”
“项目属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项”里面添加“Qt5PrintSupport.lib”;

然后像使用QWidget那样使用就行(QCustomPlot继承于QWidget)


C++中.dll与.lib文件的生成与使用

1. 两种库:
  • 包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。
  • 包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。

共有两种链接方式:

  • 动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅包含在运行时定位DLL函数的可执行代码所需的信息。
  • 静态链接使用静态链接库,链接器从静态链接库LIB获取所有被引用函数,并将库同代码一起放到可执行文件中。

2.两种文件的区别

使用lib需注意两个文件:

  • .h头文件,包含lib中说明输出的类或符号原型或数据结构。应用程序调用lib时,需要将该文件包含入应用程序的源文件中(即:把三方库文件[qcustomplot.h qcustomplot.cpp文件导入项目工程中,再在Linker中添加Qt5PrintSupportd.lib依赖库])
    注意:同时要在配置:Release中添加Qt5PrintSupportd.lib依赖库

    VS2012 使用QCustomPlot等三方库如何配置_第2张图片
    .lib依赖库

  • .lib文件

使用dll需注意三个文件:

•.h头文件,包含dll中说明输出的类或符号原型或数据结构的.h文件。应用程序调用dll时,需要将该文件包含入应用程序的源文件中。
•.LIB文件,是dll在编译、链接成功之后生成的文件,作用是当其他应用程序调用dll时,需要将该文件引入应用程序,否则产生错误(如果不想用lib文件或者没有lib文件,可以用WIN32 API函数LoadLibrary、GetProcAddress装载)。
•dll文件,真正的可执行文件,开发成功后的应用程序在发布时,只需要有.exe文件和.dll文件,并不需要.lib文件和.h头文件。

OSG[1]的使用

1.三方库引入 include、lib、bin的前世今生与何去何从

OSG作为三方图形库,对于库的引入,一切库都是由include,lib,bin组成,include中是头文件,lib中是链接文件,这两个是编译时候使用的,bin中是DLL文件这是运行时使用的,如果是静态链接库则没有DLL。因此OSG编译完成后也有这三个部分,OSG在使用CMAKE进行配置的时候,需要的第三方库也必有这三个部分,因为CMAKE是编译配置,所以只会让你配置include和lib,bin则运行时找到就可以了(往往会加到path中)

2.OSG Environment Variable(OSG 环境变量)
OSG_ROOT 指向包含include/lib/bin的目录。
OSG_BIN_PATH = %OSG_ROOT%\bin
OSG_INCLUDE_PATH = %OSG_ROOT%\include
OSG_LIB_PATH = %OSG_ROOT%\lib
OSG_SAMPLES_PATH = %OSG_ROOT%\share\OpenSceneGraph\bin
OSG_FILE_PATH = ???\OpenSceneGraph-Data-X.X

添加 %OSG_BIN_PATH% 和%OSG_SAMPLES_PATH% 到 PATH 中。新起一个命令行,输出osgviewer cow.osg看一下。根据错误提示来判断。

在程序中若要使用OSG,需要进行如下配置,每个VS的配置都不同,但是都相似(和上面引入Qt5PrintSuooortd.lib 依赖库步骤相差无几):

Properties - C/C++ - General - Additional Include Directories = $(OSG_INCLUDE_PATH)
Properties - C/C++ - Preprocessor - Preprocessor Definitions = WIN32;_WIN32;NDEBUG
Properties - Linker - General - Additional Library Directories = $(OSG_LIB_PATH)
Properties - Linker - Input - Additional Dependencies = (any OSG library your project needs - for example: osg.lib osgGA.lib osgDB.lib osgViewer.lib osgText.lib osgUtil.lib OpenThreads.lib)

  1. 使用OpenGL技术开发,是一套基于C++的应用程序接口(API),3D图像引擎。 ↩

你可能感兴趣的:(VS2012 使用QCustomPlot等三方库如何配置)