使用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了

他给示例 程序挺丰富的

相关推荐

  1. windows vs cmake项目+vcpkg

    2023-12-29 03:40:02       46 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-29 03:40:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-29 03:40:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-29 03:40:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-29 03:40:02       18 阅读

热门阅读

  1. 如果去掉前端请求参数中的前后空格?

    2023-12-29 03:40:02       43 阅读
  2. 第三章 语言基础-数据类型-Symbol补充

    2023-12-29 03:40:02       33 阅读
  3. 基于SpringBoot的校园生活服务平台

    2023-12-29 03:40:02       37 阅读
  4. 项目管理的核心技能

    2023-12-29 03:40:02       36 阅读
  5. 【洛谷】单词翻转

    2023-12-29 03:40:02       40 阅读
  6. react使用useState更新数组失败

    2023-12-29 03:40:02       40 阅读
  7. 【华为OD】人工智能面试题目

    2023-12-29 03:40:02       39 阅读
  8. 端口号与 IP 地址之间有什么关系?

    2023-12-29 03:40:02       32 阅读
  9. C++ 383. 赎金信 (a b字符串计数比较)

    2023-12-29 03:40:02       34 阅读
  10. Ubuntu系统更换清华大学镜像源

    2023-12-29 03:40:02       41 阅读