【发布时间】:2017-12-13 15:19:37
【问题描述】:
我正在尝试制作一个可以运行一些简单 Python 代码的 C++ 脚本:
// t.cpp
#include <Python.h>
int main(int argc, char* argv[])
{
Py_Initialize();
PyRun_SimpleString("print('TEST PASSED')");
Py_Finalize();
return 0;
}
在运行g++ t.cpp 时,我收到错误:
t.cpp:1:20: 致命错误:Python.h: 没有这样的文件或目录
编译终止
我发现了许多类似的问题,都是特定于 IDE 或其他开发软件的,或者通过安装 python3-dev 解决了。 python3-dev 包已经安装,我什至尝试在编译时手动包含头文件:
g++ t.cpp -I ~/.virtualenvs/MainEnv/include/python3.5m/Python.h
g++ t.cpp -I /usr/include/python3.5m/Python.h
什么都不会改变。
我该如何解决这个错误?
更新:我发现使用g++ t.cpp -I /usr/include/python3.5/ 似乎包含标头,但随后会遇到更多错误:
t.cpp:(.text+0x10): undefined reference to `Py_Initialize'
t.cpp:(.text+0x1f): 对 `PyRun_SimpleStringFlags' 的未定义引用
t.cpp:(.text+0x24): 对 `Py_Finalize' 的未定义引用
collect2: 错误:ld 返回 1 个退出状态
【问题讨论】:
标签: c++ python-3.x ubuntu g++