windows环境下c++调用python

环境搭建

2选1

1.准备32位的python和32位mingw
2.准备64位的python和64位mingw64

  • 32位mingw下载地址:https://盘.百度.com/s/1Z25NxrRuOsjOKWXddTNyeg 提取码:dvgl
  • 64位mingw64下载地址:https://www.onlinedown.net/soft/10045442.htm
    • 能力强的也可以直接到mingw的官网下载:https://www.mingw-w64.org/

把g++.exe所在路径设为环境变量

  • 以mingw64为例(32位同理)
  • 解压上面下载mingw64,把里面的文件解压到你自己喜欢的路径上
    在这里插入图片描述
    在这里插入图片描述

搭建python环境(略)

g++和python搭建完毕就可以开始hello word!了



把c++代码编译为exe程序

  • 新建一个c_call_py.cpp
#include <stdlib.h>
#include <Python.h>

int main(int argc, char *argv[]){
    
    
    Py_Initialize();
    PyRun_SimpleString("print('hello world')\n");
    Py_Finalize();
    system("pause");  // 暂停
    return 0;
}
  • 打开cmd(最好用管理员权限运行)
  • 在cmd输入g++ c_call_py.cpp -I “自己电脑python的路径\include” -L"自己电脑python的路径/libs" -l自己电脑python的.lib -o test
    • 例如我电脑python3.8就这样子输入
    • g++ c_call_py.cpp -I “C:\Program Files\Python38\include” -L"C:/Program Files/Python38/libs" -lpython38 -o test

在这里插入图片描述

  • 编译生成了test.exe
    在这里插入图片描述
    在这里插入图片描述

  • 一路过来可能遇到的坑

    1. 百度搜看到的大多数都是这个命令行:g++ main.cpp -I/usr/include/python3.5 -lpython3.5m -o test
      • 我卡在这里卡了很久,关于win环境的调用根本不适合这个命令
    2. 无法解析的外部符号 __imp_Py_Initialize …
      • 原因就是mingw和python不是相同的64或32,我就是一开始32位的mingw调用64位的python导致出现这个错误

猜你喜欢

转载自blog.csdn.net/Paper_Sheep/article/details/127540980