当前位置: 首页 > news >正文

VS + qt环境使用QCustomPlot等三方库如何配置

文章目录

  • 前言
  • VS环境下引入第三方类库QCustomPlot
    • 方法一:
    • 解决办法:
  • C++中.dll与.lib文件的生成与使用
    • 1. 两种库:
    • 2.两种文件的区别

前言

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以上版本支持打印

VS环境下引入第三方类库QCustomPlot

方法一:

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

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

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

解决办法:

“项目属性 -> 配置©: Debug”
“项目属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项”里面添加
“Qt5PrintSupportd.lib”;
“项目属性 -> 配置©: 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依赖库

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

http://www.lryc.cn/news/152421.html

相关文章:

  • OS 段页结合的实际内存管理
  • 一种改进多旋翼无人机动态仿真的模块化仿真环境研究(Matlab代码实现)
  • 02-请解释一下Java的内存模型和happens-before规则?【Java面试题总结】
  • PVE 8 出现CPU 100% 冻结(卡死)
  • 【高效编程技巧】编程菜鸟和编程大佬的差距究竟在哪里?
  • 继承【C++】
  • ORB-SLAM3复现过程中遇到的问题及解决办法
  • vue开发桌面exe应用
  • C# 实现PictureBox从随机选择的文件夹内对图像进行随机播放
  • 腾讯云国际代充-GPU服务器安装驱动教程NVIDIA Tesla
  • 【python爬虫】9.带着小饼干登录(cookies)
  • 原神剑冢三层封印怎么解开 原神剑冢三层封印在哪里打
  • Papers with Semi-supervised Learning for Medical Image Segmentation(SSL4MIS)
  • c#继承(new base)的使用
  • 【办公自动化】使用Python批量处理Excel文件并转为csv文件
  • 手机怎么剪视频?分享一些剪辑工具和注意事项
  • 面试题汇总
  • LLVM系列:1.设计思想和LLVM IR简介
  • mysql中间件Atlas
  • ChatGPT 实现动态地图可视化展示
  • Vue.js安装步骤和注意事项
  • IDEA中Run/Debug Configurations添加VM options和Program arguments
  • 信息技术03--初/高中--简答题(73道知识简答)
  • Matlab之统计一维数组直方图 bin 计数函数histcounts
  • TDengine函数大全-时间和日期函数
  • 算法笔记——路径问题
  • Arcface部署应用实战
  • MySQL InnoDB 是怎么使用 B+ 树存数据的?
  • 手撕红黑树
  • 举例说明自然语言处理(NLP)技术