gpt4 book ai didi

python - 在 C++ 中嵌入 Python (CPython API)

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:14:56 24 4
gpt4 key购买 nike

我正在尝试将 Python 嵌入到我的 C++ 项目 (Qt5) 中。我的项目看起来像这样:

python_test.pro:

QT += core
QT -= gui

TARGET = python_test
CONFIG += console
CONFIG -= app_bundle

TEMPLATE = app

SOURCES += main.cpp

INCLUDEPATH += C:\Tools\Python\Python35_64\include

LIBS += -LC:\Tools\Python\Python35_64\ -lpython3

主要.cpp:

#include <Python.h>
#include <QCoreApplication>

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print('Today is', ctime(time()))\n");
Py_Finalize();
return a.exec();
}

编译时我收到一个链接器错误,告诉我:main.cpp:-1: Error: undefined reference to `__imp_PyRun_SimpleStringFlags'

有趣的是可以找到Py_Initialize()Py_Finalize()。我阅读了一些关于隐藏函数 PyRun_SimpleStringFlags 的定义 Py_LIMITED_API 的内容。但我不明白。

如果这些函数在 C API 中不可用,我该如何运行 Python 脚本/文件/字符串?

设置:

最佳答案

我在我的电脑上测试了这个(尽管没有 Qt),使用 -lpython35 编译成功,使用 -lpython3 则没有。

所以

LIBS += -LC:\Tools\Python\Python35_64\ -lpython35

代替

LIBS += -LC:\Tools\Python\Python35_64\ -lpython3

关于python - 在 C++ 中嵌入 Python (CPython API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35012110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com