本文介绍在Visual Studio软件中配置、编译C++环境下matplotlibcpp库的详细方法。

  matplotlibcpp库是一个C++环境下的绘图工具,其通过调用Python接口,实现在C++代码中通过matplotlib库的命令绘制各类图像。由于其需要调用Python接口,因此在配置matplotlibcpp库时有些较为麻烦的操作。本文就将matplotlibcpp库的具体配置方法进行详细介绍。

1 Git配置

  Git是一个分布式开源版本控制系统,在后期我们需要基于其完成vcpkg包管理器的下载与安装,因此需要首先完成Git的配置;具体方法大家可以参考下载、安装Git并拷贝GitHub项目到本地的流程这篇文章。

2 vcpkg配置

  vcpkg是一个开源的C++包管理器,在后期我们需要基于其完成matplotlibcpp库的下载与安装,因此需要首先完成vcpkg的配置。

  首先,选定一个路径作为vcpkg的保存路径;随后,在这一文件夹下,按下Shift按钮并同时右击鼠标,选择“在此处打开Powershell窗口”。

  随后,将弹出如下所示的窗口。

  接下来,在其中输入如下的代码,并运行。

git clone https://github.com/microsoft/vcpkg

  具体如下图所示。

  稍等片刻,出现如下所示的界面,说明vcpkg安装完毕。

  随后,输入如下代码,进入vcpkg保存路径。

cd vcpkg

  再输入如下代码,激活vcpkg环境。

.\bootstrap-vcpkg.bat

  具体如下图所示。

  运行完毕后,将得到如下所示的结果。

  接下来,再输入如下所示的代码,将vcpkg与我们的Visual Studio软件相连接。

.\vcpkg integrate install

  具体如下图所示。

  代码运行完毕后,如下图所示。

3 matplotlibcpp配置

  接下来,我们即可开始进行matplotlibcpp库的配置。

3.1 matplotlibcpp安装

  首先,依然在刚刚的界面中,输入如下代码,安装matplotlibcpp库。

.\vcpkg install matplotlib-cpp

  代码运行结束后,得到如下所示的结果。

  随后,输入如下所示的代码,安装64位的matplotlibcpp库。

 .\vcpkg install matplotlib-cpp:x64-windows

  运行代码后,得到如下所示的结果。

3.2 matplotlibcpp配置

  首先,在刚刚配置的vcpkg的保存路径中,通过以下路径,找到matplotlibcpp.h文件,并将其打开。

  随后,在其#include部分的最下方,添加如下代码。

#include <string>

  具体如下图所示。

  同时,在该文件340行左右,将template开头的两行注释掉,如下图所示。

4 Python配置

  由于matplotlibcpp库是通过调用Python接口,实现在C++代码中通过matplotlib库的命令绘制各类图像,因此配置matplotlibcpp库时还需要保证电脑中拥有Python环境。而这里的Python环境也有一个具体的要求——需要具有Debug版本的Python

  因此,可以分为3种情况:第一种情况,是大家电脑中之前没有安装过任何Python环境;第二种情况,是大家之前有通过Anaconda下载Python环境;第三种情况,则是大家之前有通过Python官方下载Python环境。针对这三种情况该具体如何配置,我们也会在接下来的文章中具体提及。

  首先,对于第二种情况,也就是之前有通过Anaconda下载Python环境的情况,大家从这里开始看就好。首先,需要看一下AnacondaPython的版本;如下图所示,我这里就是在Anaconda中有3.9.12版本的Python

  其次,对于第一种情况,也就是之前没有安装过任何Python环境的情况,大家从这里开始看就好。我们在Python官方下载地址中,下载最新的Python版本即可(如果是之前有通过Anaconda下载Python环境的情况,大家这里下载和自己AnacondaPython版本不一样的版本即可。

  随后,双击打开刚刚下载好的安装包。对于第三种情况,即大家之前有通过Python官方下载Python环境的情况,那么直接找到当初的安装包,然后进行如下的操作即可。

  首先,选择“Customize installation”选项。

  接下来的页面,选择默认的配置即可。

  随后的页面,选中第一个方框中所包含的勾选项,并在其下方配置自定义安装路径;这个路径建议大家自己修改一下,同时记下来这个路径,之后会经常用到。

  随后,依据文章Windows电脑环境变量(用户变量、系统变量)的修改提到的方法,首先将以下两个路径添加到环境变量中的用户变量Path中。具体这两个路径的前缀,和大家前面所选的Python安装路径有关。

  接下来,将这两个路径同样在环境变量系统变量Path中添加一下;此外,还要注意,如果大家的环境变量中,有原本的Python路径,大家最好将原本的路径放在我们新建的变量的下方,如下图所示。

  此外,还需要在系统变量中,添加如下所示的两个内容;其中,“变量”一栏依次填写PYTHONHOMEPYTHONPATH,“”一栏就是刚刚我们的Python安装路径。

  随后,我们在计算机中进入Python环境,就默认进入我们刚刚配置的、新的Python环境;之后如果我们需要正常使用Python了,可以用我们这次配置的新的Python;也可以将刚刚配置的PYTHONHOMEPYTHONPATH两个系统变量删除,并将原有Python所对应的环境变量提前到刚刚配置好的Python环境变量之前,从而使用我们原先版本的Python

  接下来,我们需要对新创建的Python进行matplotlib库与numpy库的安装。这里就使用Python最传统的pip安装方法即可,首先输入如下的代码。

pip install -U matplotlib

  出现如下所示的界面即说明matplotlib库已经安装完毕。

  随后,输入如下所示的代码。

pip install numpy scipy matplotlib

  即可完成numpy库的安装。

5 解决方案配置

  接下来,我们创建或打开需要调用matplotlibcpp库的解决方案。

  首先,将前述Python安装路径下的以下两个.dll文件复制(具体文件名称与Python版本有关)。

  并将其复制到解决方案的文件夹下。

  随后,依据文章如何在Visual Studio新C++项目中调用之前配置过的库?中提到的方法,分别进行以下配置。

  首先,在“附加包含目录”中,将Pythonnumpy库的include文件夹放入其中。

  其次,在“附加库目录”中,将Python安装路径下libs文件夹的路径放入其中。

  再次,在“附加依赖项”中,将Python安装路径下libs文件夹中如下所示的4个.lib文件放入其中。

  随后,对于需要调用matplotlibcpp库的程序,需要添加以下代码。

#include "matplotlibcpp.h"
namespace plt = matplotlibcpp;

  具体如下图所示。

  随后,即可开始运行代码。这里提供一个最简单的matplotlibcpp库调用代码。

#include "matplotlibcpp.h"

namespace plt = matplotlibcpp;

int main() {
plt::plot({ 1, 2, 3, 4 });
plt::show();
return 0;
}

  运行代码,出现如下所示的窗口。

  以上,即完成了matplotlibcpp库的配置。

Visual Studio部署matplotlib绘图库的C++版本的更多相关文章

  1. 使用 Python 的 matplotlib 绘图库进行绘图

    matplotlib 是 Python 最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 1  使用 Ma ...

  2. Visual Studio 2022 不支持 .NET Framework 老版本 项目解决办法

    Visual Studio 2022 不支持 .NET Framework老版本 (4.5) 项目解决办法 新电脑安装的是Visual Studio 2022,打开老项目的时候发现没有.net fra ...

  3. Python图表绘制:matplotlib绘图库入门

    matplotlib 是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...

  4. Python图表绘制:matplotlib绘图库入门(转)

    matplotlib 是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...

  5. Python Matplotlib绘图库 安装

    一般我们在做科学计算的时候,首先会想到的是matlab,但是呢,一想到matlab安装包那么大,我就有点不想说什么了. Matplotlib 是python最著名的绘图库,它提供了一整套和matlab ...

  6. 使用 Visual Studio 部署 .NET Core 应用 ——ASP.NET Core 发布的具体操作

    ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择“文件” > “新建” > “项目”. 在“添加 ...

  7. 使用 Visual Studio 部署 .NET Core 应用

    可将 .NET Core 应用程序部署为依赖框架的部署或独立部署,前者包含应用程序二进制文件,但依赖目标系统上存在的 .NET Core,而后者同时包含应用程序和 .NET Core 二进制文件. 有 ...

  8. Visual Studio 设置背景图片主题(所有版本设置方法)

    前言 效果预览: 目录 扩展安装 图片背景设置 主题透明并扩展到 IDE 内容 扩展安装 ClaudiaIDE 扩展下载 我们打开VS的扩展安装界面:[扩展]->[管理扩展]->[联机], ...

  9. 使用 Visual Studio 部署 .NET Core 应用 ——.Net Core 部署到Ubuntu 16.04

    .Net Core 部署到Ubuntu 16.04 中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk-2.0) 3.Supervisor(进程管理工具,目的是服务 ...

  10. Matplotlib绘图库入门(七):高效使用

    原文地址: !()[http://www.bugingcode.com/blog/Matplotlib_7_Effectively_Using.html] 这是一篇关于如何高效的使用Matplotli ...

随机推荐

  1. 2023第十四届极客大挑战 — WEB WP

    说明:由于是从docx直接导入,因此鉴于docx的识别,文章有些图片里面有红色下划线,但不影响! 属实懒了!直接导入了...哈哈.凑合看吧!实在太多了.... EzHttp Post传参 查看源码 访 ...

  2. java - 正确关闭流

    package stream; import java.io.*; public class FileReaderTest { public static void main(String[] arg ...

  3. c#下使用WM_COPYDATA

    [DllImport("User32.dll")] public static extern int SendMessage(IntPtr hwnd, int msg, int w ...

  4. [转帖]使用 TiUP 部署运维 TiDB 线上集群

    https://docs.pingcap.com/zh/tidb/stable/tiup-cluster 本文重在介绍如何使用 TiUP 的 cluster 组件,如果需要线上部署的完整步骤,可参考使 ...

  5. [转帖]MegaCli命令

    MegaCli命令 设置jbod模式 1.3 LSI 9260/9261 raid卡配置 LSI 9260/9261 raid卡支持0.1.10.5.6.50.60 常用命令: 清除raid卡原有的配 ...

  6. 【转帖】71.常用的显示GC日志的参数、GC日志分析、日志分析工具的使用

    目录 1.常用的显示GC日志的参数 2.图解垃圾`GC`日志(重要) 3.日志分析工具的使用 1.常用的显示GC日志的参数 解释: 日志中,GC和Full GC表示的是GC的类型.GC只在新生代进行, ...

  7. Sysbench简单测试数据库性能

    摘要 先进行了一个PG数据库的测试. Mysql数据库的测试稍后跟上. 紧接着上一篇的安装, 部分文件可能需要特定路径才可以. sysbench 测试的说明 一个参数 这里稍微说一下参数的问题 sys ...

  8. Linux无头模式使用mat分析dump的方法

    摘要 mat可以很好的进行jvm的内存dump的分析. 但是大部分服务器是没有GUI界面的. 而且就算是有GUI界面也很难直接使用. 但是随着jvm堆区越来越大. WindowsPC机器已经很难进行分 ...

  9. 【JS 逆向百例】PEDATA 加密资讯以及 zlib.gunzipSync() 的应用

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...

  10. 大数据面试题集锦-Hadoop面试题(二)-HDFS

    你准备好面试了吗?这里有一些面试中可能会问到的问题以及相对应的答案.如果你需要更多的面试经验和面试题,关注一下"张飞的猪大数据分享"吧,公众号会不定时的分享相关的知识和资料. 目录 ...