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版本后,前面的头文件和库文件需要重新导入一次哦!

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咩咩大主教

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值