KDChart2.8编译过程-使用VS+CMake-MSVC2017

news2025/1/21 15:44:22

文章目录

    • 一、下载KDChart源文件
    • 二、只用Visual Studio(有缺陷)
      • 1.配置系统环境变量
      • 2.使用Visual Studio中的Qt集成功能
      • 3. 打开sln解决方案
      • 编译生成相关设置(以Release为例)
    • 三、CMake+Visual Studio(完美)
      • 1.配置系统环境变量
      • 2.新建文件夹releaseBuild
      • 3.打开CMake
      • 4.点击Configure,选择编译工具
      • 5.配置完成,可能出现的问题
      • 6.配置模式,输出路径,点击Generate
      • 7.管理运行Visual Studio 2019打开KDChart.sln
      • 8. INSTALL属性配置
      • 9.INSTALL项目:右键->生成
      • 10.编译得到
    • 四、使用
      • 测试方法一:
      • 再测试TestCustomConstraints项目:

系统:win10, Visual Studio 2019,编译器MSVC2017

注意,KDChart2.8仅支持QT5版本

一、下载KDChart源文件

打开官网https://www.kdab.com/development-resources/qt-tools/kd-chart/

拉到最下面,

image-20231023225936339
  • 先切换到2.8.0
  • 下载源文件,然后解压。
  • image-20231027234545476
  • 查看文件夹里的INSTALL.txt,可以看到如果使用使用Visual Studio需要打开顶级目录的kdchart.pro文件。

image-20231029180533233

中文版

KD Chart是一个用于创建交互式图表和图形的Qt库。根据提供的说明,以下是安装和构建KD Chart的步骤:

在KD Chart安装的顶级目录下运行"configure"脚本。根据不同的操作系统和构建类型选择相应的命令:

Windows上使用以下命令之一: configure.bat -shared -debug configure.bat -shared -release
Unix或Mac上使用以下命令之一: ./configure.sh -shared -debug ./configure.sh -shared -release
如果需要定义安装位置,可以使用类似以下的命令:
configure.bat -shared -debug -prefix c:/kdchart
./configure.sh -shared -debug -prefix /opt/kdchart

注意:不要使用相对路径作为前缀,它们将无法工作。

如果配置成功,跳转到步骤2。

1-bis) 如果你从GitHub克隆KD Chart而不是使用发布的压缩包,那么configure.bat/configure.sh脚本不存在,你需要执行以下步骤:

首先,确保已经安装了Python(版本2),并且可以在执行路径中找到。在继续之前,请运行python --version确认Python2已被找到。

然后运行autogen.py以创建configure工具:

Windows上: c:\python27\python autogen.py [options]
Linux上: python2 autogen.py [options]
将与configure.sh/configure.bat相同的选项传递给autogen.py,如步骤1中所示。

运行autogen.py后,将存在configure.sh/configure.bat脚本,你可以在需要时重新配置。然后继续执行步骤2、3或4中特定于平台的设置说明。

Unix系统:将LD_LIBRARY_PATH设置为指向KD Chart安装目录的lib文件夹。
如果尚未设置LD_LIBRARY_PATH,请在终端中运行以下命令:
% LD_LIBRARY_PATH=/path/to/kdchart/lib:$LD_LIBRARY_PATH
% export LD_LIBRARY_PATH

上述命令应添加到.bashrc或类似文件中以保持设置。也可以在构建使用KD Chart的软件之前的shell中运行,但这种情况下,设置仅对该shell有效。

如果想要将库安装在"lib64"文件夹下,请将QMAKE_ARGS环境变量设置为"LIB_SUFFIX=64",例如:
% QMAKE_ARGS="LIB_SUFFIX=64"
% export QMAKE_ARGS

MacOS系统:按照上述步骤进行操作,但使用DYLD_LIBRARY_PATH替代LD_LIBRARY_PATH。

Windows系统:

对于运行可执行文件,将KD Chart dll(kdchart\bin)路径添加到PATH环境变量中,例如: set PATH=\path\to\kdchart\bin;%PATH%
对于开发环境,将KD Chart lib(kdchartlib)路径添加到LIB环境变量中,例如: set LIB=\path\to\kdchart\lib;%LIB%
输入以下命令构建KD Chart:

Unix和Mac系统: % make
Windows系统: % nmake
在Windows上,还可以使用Visual Studio中的Qt集成功能:使用"Qt / Open Solution from .pro file"打开顶级kdchart.pro文件。然后需要调整PATH环境变量以便运行示例。

(可选)安装KD Chart:
在KD Chart的顶级目录中运行以下命令:

Unix和Mac系统: % make install
Windows系统: % nmake install
这将把必要的文件复制到安装路径的子目录中:

对于Unix/Linux和Mac系统,默认路径为/usr/local/KDAB/KDChart-VERSION/
对于Windows系统,默认路径为C:\KDAB\KDChart-VERSION\
注意:在Unix和Mac系统中,可能需要管理员权限才能将文件安装到/usr/local目录下。可以使用"sudo make install"以管理员权限进行安装。

查看示例应用程序,以了解如何使用KD Chart 2.x API开始工作。

注意:

如果只用Visual Studio,只能编译出库(.dll/.lib);头文件无法自动生成!见第二节

使用CMake+MVSC可以生成完整资源!见第三节

二、只用Visual Studio(有缺陷)

1.配置系统环境变量

image-20231029180006137

2.使用Visual Studio中的Qt集成功能

  • 使用"Qt / Open Solution from .pro file"
image-20231027234425350
  • 选择打开顶级目录的kdchart.pro文件(有可能打不开,可以在打开一次)
image-20231029230744454

此时静等qmake编译构建完成(–qmake Exit )

3. 打开sln解决方案

  • 双击sln
image-20231029231213426

编译生成相关设置(以Release为例)

  1. 设置kdchart源码 Release模式

    image-20231029232245261
  2. kdchart->右键->属性

    • 设置输出库类型,我选择静态库.lib
    • 设置与Qt VS Tools 对应的平台工具集
    image-20231029233153800
  3. 查看生成库源路径 及 输出路径

    源\KDChart-kdchart-2.8.0-release\src\release\

    输出\KDChart-kdchart-2.8.0-release\bin

    image-20231029233559269
  4. kdchart->右键->生成

    生成成功

    image-20231029234331870

    image-20231029234412383

这样就编译好了。

主要是要用到这些文件。

三、CMake+Visual Studio(完美)

1.配置系统环境变量

  • 见2.1

2.新建文件夹releaseBuild

  • 打开顶级目录,新建文件夹用于保存cmake输出文件
image-20231101233804349

3.打开CMake

image-20231101234222786

4.点击Configure,选择编译工具

选择的是安装的Visual Studio版本,不是编译链MSVC;

我使用Visual Studio 2019+MSVC2017 进行开发,选择如下!

image-20231101234707537

5.配置完成,可能出现的问题

  • 警告可以不用理会;也可以按提示修改CMakeLists.txt的26行,把版本号改为当前使用CMake版本号

image-20231101235143092

  • 可能报错

    解决:CMake Error :Visual Studio 15 2017 -could not find any instance of Visual Studio

6.配置模式,输出路径,点击Generate

输出路径:如果是C盘需要管理员,运行Visual Studio 2019打开.sln

image-20231102000025451 image-20231102000429949

7.管理运行Visual Studio 2019打开KDChart.sln

image-20231102000921985

8. INSTALL属性配置

  • INSTALL项目,可能再CMakexxxx文件下,也可能不在;
  • 根据需要配置;我配置Release+MSCV2017

image-20231102001521379

image-20231102001307629

9.INSTALL项目:右键->生成

  • 编译大概15分钟

  • image-20231102002359485

  • 失败,先找到ALL_BUILD项目,执行相同步骤8、9(对ALL_BUILD进行配置后生成)

image-20231102082825818

次失败不用管!

如果有其他失败,先找到ALL_BUILD项目,执行相同步骤8、9(对ALL_BUILD进行配置后生成);

然后再次对INSTALL项目:右键->生成!

10.编译得到

image-20231102002604649

编译得到

“C:\Program Files\KDChart\bin\kdchart2.dll”

“C:\Program Files\KDChart\lib\kdchart2.lib”

“C:\Program Files\KDChart\include\KDChart”

四、使用

把编译好的头文件,库文件保存到工程目录下。

debug的库文件是(我没编debug)

release的库文件是(kdchart2.dll、kdchart2.lib)

我们使用官方Qt项目,运行一下。

注意:

先把C:\Program Files\KDChart\bin\配置到系统环境变量

测试方法一:

  • 1.使用Visual Studio的Qt VS Tools打开下载的KDChart源码的官方例子KDChart-kdchart-3.0\tests\Gantt\Gantt.pro
image-20231102235530729
  • 2.以TestApiReview为例子,选择TestApiReview右键->设为启动启动项目

  • 3.属性配置,执行像第三的步骤8、9

  • 4.打开属性管理器

image-20231103000414546
  • 5.添加新项目属性表

目的是,只需要配置一次属性表,其他项目添加此属性表即可,无需重复配置;

image-20231103000545390 image-20231103001044122
  • 6.配置PropertySheet.props的属性;右键->属性

1)C/C+±>常规->附加包含目录

image-20231103001443765

2) 连接器->常规->附加库目录

image-20231103001821193

3)连接器->输入->附加依赖项

image-20231103002328497

  • 7.回到解决方案中,选择TestApiReview右键->生成
image-20231103002552910
  • 生成成功,运行调式
image-20231103002806777

构建,选择Release/Debug运行(根据生成的库)

image-20231103003845711

再测试TestCustomConstraints项目:

  • 和上面一样的步骤,在第5、6改为:

  • 属性管理器->右键->添加现有属性表

image-20231103004620883

  • 编译生成运行

  • 如果报错,就TestCustomConstraints项目->右键->属性->连接器->常规->附加库目录

    删除.lib即可

image-20231103005024621

  • 结果

image-20231103005330968

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1165322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信息泄露--

大唐电信AC简介 大唐电信科技股份有限公司是电信科学技术研究院(大唐电信科技产业集团)控股的的高科技企业,大唐电信已形成集成电路设计、软件与应用、终端设计、移动互联网四大产业板块。 大唐电信AC集中管理平台存在弱口令及敏感信息泄漏漏…

webgoat(A2) Broken Authentication

身份验证绕过 身份验证绕过以多种方式发生,但通常会利用配置或逻辑中的某些缺陷。篡改以达到正确的条件。 隐藏输入 最简单的形式是依赖于网页/DOM 中的隐藏输入。 删除参数 有时,如果攻击者不知道参数的正确值,他们可能会从提交中完全删…

excel利用正则匹配和替换指定内容

上班中, 突然接到电话, 屋里的上司大人发来个excel, 说要替换里面x-x-xxx列的内容为x栋x单元xxx. 大致表格如下, 原表格我就不发了 身为程序猿的我, 肯定第一就想到了 正则! 打开excel-开始-查找和替换, 我擦, 只能完全匹配和替换 比如一次只能替换1-1- -> 为1栋1单元 1-2…

牛客项目(五)-使用kafka实现发送系统通知

kafka入门以及与spring整合 Message.java import java.util.Date;public class Message {private int id;private int fromId;private int toId;private String conversationId;private String content;private int status;private Date createTime;public int getId() {retur…

不使用屏幕在树莓派4B安装Ubuntu22.04桌面版(64位)

因为时间有限只说一下基本路径: 1首先安装Ubuntu22.04server版本 2设置服务器版本的SSH和WiFi 3通过服务器版本安装Ubuntu-desktop升级到Ubuntu22.04桌面版 4在桌面版上安装远程控制软件:xrdp; 5使用Windows自带的远程桌面连接访问Ubuntu 6完成

Linux -----------------------Shell 流程判断

什么是shell Shell是操作系统的用户界面,负责接收和解释用户的命令,并将这些命令转化为操作系统内部能够理解的指令,然后执行相应的操作。Shell还允许用户编写脚本,以自动化和批处理任务,从而提高效率。在Linux系统中&…

【Nginx38】Nginx学习:SSL模块(二)错误状态码、变量及宝塔配置分析

Nginx学习:SSL模块(二)错误状态码、变量及宝塔配置分析 继续我们的 SSL 模块的学习。上回其实我们已经搭建起了一个 HTTPS 服务器了,只用了三个配置,其中一个是 listen 的参数,另外两个是指定密钥文件的地址…

【LeetCode刷题-排序】--912.排序数组

912.排序数组 方法&#xff1a;使用插入排序 class Solution {public int[] sortArray(int[] nums) {int len nums.length;//循环不变量:使nums[i]插入区间[0,i),使之成为有序数组for(int i 1;i<len;i){//先缓存这个元素&#xff0c;然后之前的元素逐个后移&#xff0c;…

LeetCode----52. N 皇后 II

 题目 n 皇后问题 研究的是如何将 n 个皇后放置在 n n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。 示例 1: 输入:n = 4 输出:2 解释:如上图所示,4 皇后问题存在两个不同的解法。 示例 2: 输入:n = …

【CSDN 每日一练 ★★☆】【数学】旋转图像

【CSDN 每日一练 ★★☆】【数学】旋转图像 数学 数组 题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 示例 1&a…

前端埋点方式

前言&#xff1a; 想要了解用户在系统中所做的操作&#xff0c;从而得出用户在本系统中最常用的模块、在系统中停留的时间。对于了解用户的行为、分析用户的需求有很大的帮助&#xff0c;想实现这种需求可以通过前端埋点的方式。 埋点方式&#xff1a; 1.什么是埋点&#xff1f…

【Selenium+python】自动化测试登录界面

前言&#xff1a;已经学习selenium许久了&#xff0c;奈何公司的项目还在码代码中...&#xff0c;感觉自己学的东西快忘的差不多了&#xff0c;所以就找个网站练练手&#xff0c;顺便回顾一下UI自动化的知识&#xff0c;也希望跟我一样的小白有所受益。 一、用例分析&#xff…

线扫相机DALSA--常见问题四:修改相机参数,参数保存无效情况

该问题是操作不当&#xff0c;未按照正常步骤保存参数所致&#xff0c;相机为RAM机制&#xff0c;参数需保存在采集卡的ROM内。 保存参数步骤&#xff1a; ①首先将相机参数保存至User Set1&#xff1b; ②然后回到Board(采集卡)参数设置区&#xff0c;鼠标选中Basic Timing&a…

C++——类和对象(中)完结

赋值运算符重载 运算符重载 C 为了增强代码的可读性引入了运算符重载 &#xff0c; 运算符重载是具有特殊函数名的函数 &#xff0c;也具有其 返回值类型&#xff0c;函数名字以及参数列表&#xff0c;其返回值类型与参数列表与普通的函数类似。 函数名字为&#xff1a;关键…

中富转债,章鼓转债上市价格预测

中富转债-123226 基本信息 转债名称&#xff1a;中富转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;5.2亿元。 正股名称&#xff1a;中富电路&#xff0c;今日收盘价&#xff1a;30.03元&#xff0c;转股价格&#xff1a;36.44元。 当前转股价值 转债面…

桥接模式birdge

简介 桥接模式&#xff1a;将抽象与实现相分离&#xff0c;使他们可以独立变化。 角色 抽象化&#xff08;Abstraction&#xff09;角色&#xff1a; 该类持有一个对实现角色的引用&#xff0c;抽象角色中的方法需要实现角色来实现&#xff0c;抽象角色一般为抽象类&#xf…

NOA标配搭载率不足3%!英伟达中国「自研」智驾方案

汽车行业的特殊性&#xff0c;意味着&#xff0c;对于供应链来说&#xff0c;一家独大几乎不可能。对于芯片赛道来说&#xff0c;同样如此。 以智能驾驶为例&#xff0c;目前的供应链形态&#xff0c;也正处于变革的关键周期。各路玩家也都在尝试与车企合作模式的多元化。 高工…

并发请求控制

Chrome 浏览器最多并发6个请求。一般情况下&#xff0c;我们都会设置并发数为 3。 并发请求控制主要有两种区别&#xff1a;假设并发数为 3 三个请求为一组进行并发&#xff0c;这三个请求全部完成了&#xff0c;再进行下一组。在第一种方式的基础上加上滑动补位&#xff0c;…

Express框架开发接口之前台分类导航

1.初始化 const handleDB require(../handleDB/index) // 获取全部导航 exports.allNav (req, res) > {(async function () {})() } // 更新或者添加导航 exports.upNav (req, res) > {(async function () {})() } // 根据id删除 exports.delNav (req, res) > {(a…

Mac电脑风扇控制推荐 Macs Fan Control Pro 中文 for mac

Macs Fan Control Pro是一款功能全面、易于使用且具有良好兼容性和安全性的风扇控制软件&#xff0c;适用于各种Mac用户。 除了能够调整风扇速度外&#xff0c;Macs Fan Control Pro还支持实时监测硬件传感器的温度&#xff0c;例如CPU、硬盘等&#xff0c;同时显示每个传感器…