2024最新版:C++用Vcpkg搭配VS2022安装matplotlib-cpp库

matplotlib-cpp是一个用于在C++中使用matplotlib绘图库的头文件库。它提供了一个简单的接口,使得在C++中创建和显示图形变得更加容易。这个库的灵感来自于Python的matplotlib库,它使得在C++中进行数据可视化变得更加便捷。

matplotlib-cpp允许在C++中使用类似Python中matplotlib的语法和功能来创建各种类型的图形,包括折线图、散点图、柱状图等。你可以使用它来可视化数据,分析模拟结果,或者创建漂亮的图形报告。

由于matplotlib-cpp是一个只含头文件的库,因此直接从github下载matplotlib-cpp的头文件就可以直接用了。

或者可以用vcpkg下载并安装matplotlib-cpp,其实两种方式都差不多,都是把这个头文件下载下来就可以了。

我就用vcpkg来下载吧。

到vcpkg的默认安装目录下就可以看到matplotlibcpp.h的头文件了。

打开VS2022创建一个C++控制台项目,然后导入头文件和库文件,由于matplotlib-cpp需要python的库文件和头文件所以需要安装python。

下面是分别要导入的头文件和库文件,把路径改为你的安装路径就可以了,下面这个vcpkg的include路径下面装的就是matplotlib-cpp.h头文件,换成你的头文件所在路径就可以了,因为matplotlib-cpp是一个只含头文件的库,没有链接库文件。

D:\c.app\Python3.9.0\include
D:\c.app\vcpkg\installed\x64-windows\include
D:\c.app\Python3.9.0\Lib\site-packages\numpy\core\include
D:\c.app\Python3.9.0\libs

 博主的python和vcpkg都安装在D盘,所以可以比较轻松找到对应的头文件和库文件。

把这段代码复制到cpp文件中,然后运行代码。

#include <matplotlibcpp.h>
namespace plt = matplotlibcpp;int main() {std::vector<double> x = { 1, 2, 3, 4, 5 };std::vector<double> y = { 2, 4, 6, 8, 10 };plt::plot(x, y);plt::xlabel("X");plt::ylabel("Y");plt::title("Simple Plot");plt::show();return 0;
}

然后就报错了。 

错误一

1>D:\c.app\vcpkg\installed\x64-windows\include\matplotlibcpp.h(2014,85): error C2039: "stod": 不是 "std" 的成员
1>D:\c.app\vcpkg\installed\x64-windows\include\matplotlibcpp.h(2014,85): error C3861: “stod”: 找不到标识符

这个错误需要在matplotlib-cpp.h里面加入string头文件才可以。

错误二

1>D:\c.app\vcpkg\installed\x64-windows\include\matplotlibcpp.h(340,20): error C2766: 显式专用化;已定义“matplotlibcpp::detail::select_npy_type<int64_t>”
1>D:\c.app\vcpkg\installed\x64-windows\include\matplotlibcpp.h(342,20): error C2766: 显式专用化;已定义“matplotlibcpp::detail::select_npy_type<uint64_t>”

 这个错误需要将对应位置的重定义代码注释掉

然后保存matplotlib-cpp.h文件。

运行代码,发现运行成功。

除此之外,你们可能还会遇到一个问题

LINK : fatal error LNK1104: 无法打开文件“python39_d.lib”

 这个问题主要是因为你的python版本是Release版本的,而不是Debug版本的,python39_d.lib是Debug版本的python专属的链接库文件,那么只需要把VS2022的模式改为Release版就行了。

改为Release版本后,前面的头文件和库文件需要重新导入一次哦!

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

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

相关文章

CTFHUB-SSRF-端口扫描

已经提示我们需要扫描8000~9000的端口 ?urlhttp://127.0.0.1:8000/flag.php 访问用burp抓包爆破 通过Burp扫描8000-9000端口开放的web服务&#xff0c;发现8718开放web服务

QML 列表,图片展示(一)

文章目录 1.QML 列表&#xff0c;图片展示效果图2.项目基本说明3.项目详解3.1界面显示部分3.2 网络部分 4.源代码5.flickr图片查询链接&#xff0c;后面我们将调整代码&#xff0c;获取更多图片 1.QML 列表&#xff0c;图片展示效果图 2.项目基本说明 该项目来自Qt示例程序 Ph…

MySQL数据库(一):数据库介绍与安装

在嵌入式开发中&#xff0c;数据库的重要性体现在高效的数据存储和管理、数据持久化、复杂查询和处理、数据同步和共享、安全性和可扩展性。常见嵌入式数据库包括SQLite、MySQL、LevelDB等&#xff0c;应用于智能家居、工业控制、车载系统和物联网设备&#xff0c;提升了系统功…

关于 pnpm monorepo 项目中 TS2742 Error 的 workaround

最近我在使用 pnpm 作为包管理器开发一个 monorepo 项目&#xff0c;从个人体验来说&#xff0c;在 monorepo 项目中&#xff0c;pnpm 确实要比 yarn classic 用得舒心&#xff0c;最让我欣喜的是 pnpm 对 workspace 协议的支持度很好&#xff1b;另外感受比较明显的一点就是&a…

Nginx+Lua+Redis 实现Nginx301跳转配置管理

业务场景需求 long long ago&#xff1a; 在项目的运维过程中有一次SEO团队提出 网页的URL 中如果可以带上关键字&#xff0c;那么网页在各大搜索引擎中收录和排名有非常重大的突出优势&#xff08;~~SEO团队到底专不专业 ~~&#xff0c;此处不做置评&#xff09;&#xff0c;…

超详细!想进华为od的请疯狂看我!

三分钟带你全面了解华为OD 【合同及管理】签约方为科锐国际/外企德科&#xff08;人力服务公司&#xff09;&#xff0c;劳动合同期为4年&#xff0c;试用期6个月。员工关系合同管理、五险一金、考勤发薪由科锐国际/外企德科负责&#xff1b;定级定薪、员工培训、工作安排、绩…

学生课程信息管理系统

摘 要 目前&#xff0c;随着科学经济的不断发展&#xff0c;高校规模不断扩大&#xff0c;所招收的学生人数越来越 多&#xff1b;所开设的课程也越来越多。随之而来的是高校需要管理更多的事务。对于日益增 长的学生相关专业的课程也在不断增多&#xff0c;高校对其管理具有一…

计算机网络:应用层 - 万维网 HTTP协议

计算机网络&#xff1a;应用层 - 万维网 & HTTP协议 万维网 WWW统一资源定位符 URL 超文本传输协议 HTTP非持续连接持续连接非流水线流水线 代理服务器HTTP报文 万维网 WWW 万维网是一个大规模的、联机式的信息储藏所。万维网用链接的方法能非常方便地从互联网上的一个站点…

路由

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 客户端&#xff08;例如浏览器&#xff09;把请求发送给 Web 服务器&#xff0c;Web 服务器再把请求发送给 Flask程序实例。程序实例需要知道对每个U…

昇思25天学习打卡营第5天|网络构建

一、简介&#xff1a; 神经网络模型是由神经网络层和Tensor操作构成的&#xff0c;mindspore.nn提供了常见神经网络层的实现&#xff0c;在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff08;这个类和pytorch中的modul类是一样的作用&#xff09;&#xff0c;也是…

std::bind与std::ref配合使用时要注意的几个问题

目录 1 假如输入函数的变量是左值非常量引用&#xff0c;则该变量在std::bind中只能用std::ref修饰&#xff0c;不能用cref&#xff0c;否则编译失败&#xff1a; 2 假如输入函数的变量是左值常量引用&#xff0c;则该变量在std::bind中既可以用std::ref修饰&#xff0c;也可…

Mathtype7在Word2016中闪退(安装过6)

安装教程&#xff1a;https://blog.csdn.net/Little_pudding10/article/details/135465291 Mathtype7在Word2016中闪退是因为安装过Mathtype6&#xff0c;MathPage.wll和MathType Comm***.dotm)&#xff0c;不会随着Mathtype的删除自动删除&#xff0c;而新版的Mathtype中的文件…

Inpaint软件最新版下载【安装详细图文教程】

​根据使用者情况表明在今天的数字时代&#xff0c;我们经常会遇到需要处理图形的情况&#xff0c;然而&#xff0c;当我们遇到水印在图形上&#xff0c;我们就需要寻找一个有效的方式来去除它&#xff0c;Inpaint软件就是一个非常实用的工具&#xff0c;它能够帮助我们去除水印…

小柴带你学AutoSar系列一、基础知识篇(6)车规级MCU入门RH850

flechazohttps://www.zhihu.com/people/jiu_sheng 小柴带你学AutoSar总目录https://blog.csdn.net/qiansh

【web2】jquary,bootstrap,vue

文章目录 1.jquary&#xff1a;选择器1.1 jquery框架引入&#xff1a;$("mydiv") 当成id选择器1.2 jquery版本/对象&#xff1a;$(js对象) -> jquery对象1.3 jquery的页面加载事件&#xff1a;$ 想象成 window.onload 1.4 jquery的基本选择器&#xff1a;$()里内容…

GIM: Learning Generalizable Image Matcher From Internet Videos

【引用格式】&#xff1a;Shen X, Yin W, Mller M, et al. GIM: Learning Generalizable Image Matcher From Internet Videos[C]//The Twelfth International Conference on Learning Representations. 2023. 【网址】&#xff1a;https://arxiv.org/pdf/2402.11095 【开源代…

Linux_软硬链接

目录 1、软链接 2、软链接的使用方式 3、软链接的删除 4、硬链接 5、硬链接的使用方式 6、软硬链接的使用场景 7、软硬链接的区别 结语 前言&#xff1a; 在Linux操作系统中&#xff0c;有软链接和硬链接&#xff0c;他们是一种特殊的文件引用&#xff0c;主要用于与…

Cyber Weekly #12

赛博新闻 1、Anthropic发布Claude 3.5 Sonnet 本周五&#xff08;6月21日&#xff09;凌晨&#xff0c;Anthropic宣布推出其最新的语言模型Claude 3.5 Sonnet&#xff0c;距离上次发布Claude3才过去3个月。Claude3.5拥有20万token的长上下文窗口&#xff0c;目前已经在Claude…

HCIA 19 结束 企业总部-分支综合实验(下)

3.6出口NAT配置可以访问互联网 配置NAT使内网可以访问公网8.8.8.8&#xff0c;当前总部PC1 PING不通公网地址8.8.8.8。 3.6.1总部配置NAT访问互联网 步骤1&#xff1a;配置NAT acl number 2000 rule 5 permit source 192.168.0.0 0.0.255.255 # interface GigabitEthern…

Redis预备知识

一.预备知识 1.基本全局命令 set key value 将key的值设置成value get key 得到key的值 keys [pattern] 查看匹配pattern的所有key 比如h?llo匹配hallo&#xff0c;hbllo&#xff0c;hcllo……只要用一个符号将&#xff1f;代替即可 比如h*llo匹配hllo&#xff0c;heeeello…