我正在尝试将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\ -lpython3main.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()。我读到了一些关于define Py_LIMITED_API的内容,它隐藏了PyRun_SimpleStringFlags函数。但我不明白。
如果没有这些函数在C中可用,我应该如何运行Python脚本/文件/字符串?
设置:
发布于 2016-01-26 10:59:30
我在我的计算机上测试了这一点(不过没有Qt ),-lpython35编译成功了,而-lpython3没有成功。
所以
LIBS += -LC:\Tools\Python\Python35_64\ -lpython35而不是
LIBS += -LC:\Tools\Python\Python35_64\ -lpython3https://stackoverflow.com/questions/35012110
复制相似问题