使用cmake配置matplotlibcpp生成VS项目

https://gitee.com/feboreigns/matplotlibcpp

这篇文章需要一些cmake基础,python基础,visualstudio基础

准备环境

注意如果在VS平台使用必须要手动下载python,不能使用conda里面的,比如3.8版本,因为conda里面没有python38_d.dll,只有python38.dll。怎么下载python就不解释了,注意安装的时候把所有的都勾上,尤其下面这个:
在这里插入图片描述

一般能自动添加环境变量,然后直接使用pip安装matplotlib。

PS C:\Users\aa\Desktop> python -V
Python 3.8.10
pip install matplotlib

我把我弄好的环境放在csdn上,但要自己配置环境变量

开始

1 把代码克隆下来。

2 使用vscode或者什么打开文件夹

3 cmake常规操作:新建一个build文件夹,cd进去,然后cmake … (注意我的cmake默认就是VS)

4 可能生成失败了,报一个错误:

PYTHONHOME = (not set)
PYTHONPATH = (not set)
........................................
ModuleNotFoundError: No module named 'encodings'

设置环境变量就行了

在这里插入图片描述

5 然后去build打开VS的sln,都编译一遍,release和debug,编译成功。

6 把python路径扔到环境变量path中(如果有就忽略),点击exe运行。

debug模式下运行不成功,出现下面的错误:

No module named 'numpy.core._multiarray_umath'
......................................

只需要在debug下加入附加依赖项E:\python3.8.10\libs\python38.lib,然后重新编译。
如果报错找不到dll那么就去python路径复制dll到运行目录下

7.如果你不想把这个版本的python加入到环境变量中,那么就取消我的注释,手动指定路径

set(CMAKE_PREFIX_PATH "E:/python3.8.10" ${CMAKE_PREFIX_PATH})
set(Python3_FIND_STRATEGY LOCATION)  # 指定查找策略
set(Python3_ROOT_DIR "E:/python3.8.10")  # 设置根路径
set(Python3_FIND_FRAMEWORK NEVER)  # 禁用 Framework 模式

8. 如果你想在其他的项目中使用matplotlibcpp

那么在包含目录加入:
E:/python3.8.10/include
E:/python3.8.10/Lib/site-packages/numpy/core/include
加入依赖项:
E:\python3.8.10\libs\python38.lib
debug下加入额外依赖项E:\python3.8.10\libs\python38_d.lib
就能正常使用matplotlibcpp.h了

他给示例 程序挺丰富的

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型

作者:kele 一、背景 SuperMap Hi-Fi 3D SDK(2023 11i) for Unity推出新功能:支持矢量面同时贴地形图层和模型图层,并且能实现数据点击查询属性、更改初始填充颜色、初始边框线颜色、选中填充颜色、选中边框线颜色、控…

如何本地部署Nextcloud结合cpolar搭建专属私有云盘远程访问(内网穿透)

文章目录 摘要1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 摘要 Nextcloud,它是ownCloud的一个分支,是一个文件共享服…

基于ssm教务管理系统论文

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…

代码随想录-刷题第三十九天

动态规划理论基础 动态规划的题目由重叠子问题构成,每一个状态一定是由上一个状态推导出来的。这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。 动态规划五步曲 确定dp数组(dp table)以及下标的含义…

计算机毕业设计---ssm+mysql+jsp实现的校园二手市场交易平台源码

项目介绍 本系统主要实现的功能有: 前台:(1)二手物品信息查看、搜索。 (2)学生注册登录、个人信息修改。 (3)二手物品信息发布、编辑。 (4)二手物品评论、回…

JAVA——JDBC学习

视频连接:https://www.bilibili.com/video/BV1sK411B71e/?spm_id_from333.337.search-card.all.click&vd_source619f8ed6df662d99db4b3673d1d3ddcb 《视频讲解很详细!!推荐》 JDBC(Java DataBase Connectivity Java数据库连…

windows进行udp端口转发,解决项目中服务器收不到组播数据的问题

说明 windows7的netsh interface portproxy命令只支持tcp端口转发 如果要进行udp端口转发可以使用sokit 运行sokit 端口转发(以为tcp作为讲解,udp类似) 选择转发器 输入监听地址(SRC地址)和端口 输入转发地址&am…

网络安全 :保护数字世界的壁垒

随着数字化时代的到来,网络安全变得越来越重要。本文介绍了网络安全的定义,探讨了网络安全的重要性以及网络安全的解决方案,包括身份验证、防火墙、加密等技术,以确保数字世界的安全。 随着互联网的蓬勃发展,数字化技术…

Download Monitor Email Lock下载监控器邮件锁插件

打开Download Monitor Email Lock下载监控器邮件锁插件 Download Monitor Email Lock下载监控器邮件锁插件下载监视器的电子邮件锁定扩展允许您要求用户在获得下载访问权限之前填写他们的电子邮件地址。 Download Monitor Email Lock下载监控器邮件锁插件用法 安装扩展程序后…

【Vulnhub 靶场】【Hms?: 1】【简单】【20210728】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/hms-1,728/ 靶场下载:https://download.vulnhub.com/hms/niveK.ova 靶场难度:简单 发布日期:2021年07月28日 文件大小:2.9 GB 靶场作者:niveK 靶场系…

canal 数据同步组件

canal 数据异构组件 为啥要使用这个组件? 在更新DB的时候不同步更新到redis,es等数据库中,时间太久,而且可能会存在同步失败的问题,因此引入canal去拉取DB的数据,再去更新到redis,es等数据库中&…

LED驱动升降压芯片的多种应用方案,实现产品多样化需求-FP7195

目录 FP7195LED驱动降压恒流型 FP7195驱动升压恒流型 FP7195-升降压恒流型驱动方式 FP7195-升降压恒流型驱动方式-高压版 FP7195LED驱动是一种广泛应用于LED照明产品中的驱动器,为了满足不同客户对于产品性能和功能的要求,该驱动器提供了四种不同的方…

Go 中有效并发的模式

设计高效可靠的并发系统 在现代软件开发领域中,利用并发的能力已经变得至关重要。随着应用程序的复杂性增加和数据处理需求的增长,编写既高效又可靠的并发代码成为了一个重要的关注点。为了解决这个挑战,开发者们已经制定了一些模式和最佳实…

java freemarker 动态生成excel文件

好久木有更新啦 抓住2023的小尾巴 浅浅更新一下吧~ 最近做了一个动态生成excel的功能,这里记录下部分功能,主要用到的是freemarker框架,spring就有带,我起的demo载入了一下freemarker的jar包 一、创建模板 首先可以创建一个e…

百度每天20%新增代码由AI生成,Comate SaaS服务8000家客户 采纳率超40%

12月28日,由深度学习技术及应用国家工程研究中心主办的WAVE SUMMIT深度学习开发者大会2023在北京召开。百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰现场公布了飞桨文心五载十届最新生态成果,文心一言最新用户规模破1亿,截…

idea中切换JDK8、JDK11、JDK17

有时候,我们可能需要在不同的Java版本中去测试或者查看源码,idea可以让我们修改Java的版本。 前提:你必须下载安装好对应的Java版本,可参考文章【windows下切换JDK8、JDK11、JDK17】(https://blog.csdn.net/xijinno1/a…

九九乘法表c 语言 用于打印九九乘法表

以下是一个简单的C语言程序&#xff0c;用于打印九九乘法表&#xff1a; #include <stdio.h>int main() {int i, j;for (i 1; i < 9; i) {for (j 1; j < i; j) {printf("%d*%d%-2d ", j, i, i*j);}printf("\n");}return 0; }解释&#xff1…

快速上手makefile自动化构建工具

makefile自动化构建工具 文章目录 makefile自动化构建工具 makefile背景 简单认识makefile 依赖关系与依赖方法 生成项目 清理项目 ACM时间 语法补充 .PHONY修饰 特殊符号替换 Makefile的推导过程 总结 前言&#xff1a; 在windows下&#xff0c;很多东西都是编译器直接帮你做…

im6ull学习总结(二)Framebuffer 应用编程

1 LCD操作原理 linux中通过framebuffer驱动程序来控制LCD。framebuffer中包含LCD的参数&#xff0c;大小为LCD分辨率xbpp。framebuffer 是一块内存 内存中保存了一帧图像。 关于图像的帧指的是在图像处理中&#xff0c;一帧&#xff08;Frame&#xff09;是指图像序列中的单个…

一篇文章带你轻松入门Python

Python基础 1. Hello World! Python命令行 假设你已经安装好了Python, 那么在命令提示符输入: python 将直接进入python。然后在命令行提示符>>>后面输入: >>>print(Hello World!) 可以看到&#xff0c;随后在屏幕上输出: print是一个常用函数&#xf…