You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows 10下编译嵌入Python的C++程序

在Windows 10下用MinGW编译嵌入Python的C++程序解决链接错误

问题根源

你碰到的是链接器错误——编译时只处理了C++源文件,但没告诉编译器Python头文件的位置,也没链接Python的库文件,导致链接器找不到Py_DecodeLocale、Py_Initialize这些Python API的实现代码。

修复方案

1. 修正代码中的Python.h引用

把代码里的绝对路径引用改成标准形式,后续通过编译参数指定头文件位置更规范:

#define PY_SSIZE_T_CLEAN
// 替换原有的绝对路径include
#include <Python.h>
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
    wchar_t *program = Py_DecodeLocale(argv[0], nullptr);
    if (program == nullptr)
    {
        cerr << "Failed to decode argv[0]" << endl;
        exit(1);
    }
    Py_SetProgramName(program);

    Py_Initialize();

    PyRun_SimpleString("print('Hello World')"); // 顺便修正拼写错误:Hellow → Hello

    if (Py_FinalizeEx() < 0)
    {
        cerr << "Failed to finalize" << endl;
        exit(120);
    }

    PyMem_RawFree(program);

    return 0;
}

2. 修改VS Code的编译任务(tasks.json)

点击VS Code左侧「运行和调试」面板,或者直接打开项目下的.vscode/tasks.json,修改编译命令的参数,添加Python的头文件路径、库路径和链接库:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "C:\\msys64\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                // 指定Python头文件目录
                "-IC:\\Users\\super\\AppData\\Local\\Programs\\Python\\Python310\\include",
                // 指定Python库文件目录
                "-LC:\\Users\\super\\AppData\\Local\\Programs\\Python\\Python310\\libs",
                // 链接Python310库
                "-lpython310"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "编译器: C:\\msys64\\mingw64\\bin\\g++.exe"
        }
    ]
}

3. 关键注意事项

  • 必须保证你安装的Python是64位版本,和你使用的MinGW(x86_64)位数完全一致,否则会出现链接或运行时错误。
  • 编译完成后运行程序时,需要确保python310.dll能被程序找到:要么把这个dll从Python安装目录复制到你的C++程序所在文件夹,要么把Python的安装根目录(比如C:\Users\super\AppData\Local\Programs\Python\Python310)添加到系统环境变量PATH中。

内容的提问来源于stack exchange,提问作者Noob Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:36:32