Nel*_*son 1 c++ ubuntu g++ python-3.x
我正在尝试制作一个 C++ 脚本来运行一些简单的 Python 代码:
// t.cpp
#include <Python.h>
int main(int argc, char* argv[])
{
Py_Initialize();
PyRun_SimpleString("print('TEST PASSED')");
Py_Finalize();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
运行后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
Run Code Online (Sandbox Code Playgroud)
两者都没有改变任何东西。
我该如何修复这个错误?
更新:我发现 usingg++ t.cpp -I /usr/include/python3.5/似乎包含标头,但随后遇到更多错误:
t.cpp:(.text+0x10): 对“Py_Initialize”的未定义引用
t.cpp:(.text+0x1f): 对 `PyRun_SimpleStringFlags' 的未定义引用
t.cpp:(.text+0x24): 对 `Py_Finalize' 的未定义引用
collect2:错误:ld 返回 1 退出状态
我在我的github上设置了一个类似的例子
g++ t.cpp缺少一些东西:
-I/path/to/headers/)-lpython3.5m)您还可以使用以下命令检索这些标志pkg-config
$ pkg-config python-3.5 --libs --cflags
-I/usr/include/python3.5m -I/usr/include/x86_64-linux-gnu/python3.5m -lpython3.5m
Run Code Online (Sandbox Code Playgroud)
你的命令行应该类似于g++ -I/usr/include/python3.5m t.cpp -lpython3.5m
| 归档时间: |
|
| 查看次数: |
10591 次 |
| 最近记录: |