在C++库中嵌入Python
Embedding Python in C++ libraries
我正在将Python嵌入一些C++代码中,但我在编译它时遇到了麻烦。
对于头文件,我有
#include <Python.h>
我会先试试,
$g++ EmbeddedPython.cpp
但最终会得到
EmbeddedPython.cpp:1:20: error: Python.h: No such file or directory
EmbeddedPython.cpp: In function ‘int main(int, char**)’:
EmbeddedPython.cpp:6: error: ‘Py_Initialize’ was not declared in this scope
....
然后我尝试了
g++ EmbeddedPython.cpp -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5
这消除了前两个错误,但我最终还是使用了
Undefined symbols:
"_Py_Initialize", referenced from:
_main in ccxJAUAB.o
我对此有点陌生,但我觉得我学得很快。我想我需要"链接"一个图书馆,对吧?但是是哪一个,如何?我需要一个动态的还是静态的?
我正在开发MacBook Pro。
您需要针对libpython进行链接。UNIX程序员使用链接命令中的"-lpyson"(即在"g++"命令的末尾(来完成此操作。在Mac上,我认为它应该是"-framework Python"。
相关文章:
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- Pybind11:将元组列表从Python传递到C++
- 如何在c++中使用引用实现类似python的行为
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 递归列出所有目录中的C++与Python与Ruby的性能
- IPC使用多个管道和分支进程来运行Python程序
- 从python中调用C++函数并获取返回值
- Python 3.7 和 excess_args 的 SWIG 问题
- Python中的for循环与C++有何不同
- 使用Pybind11向Python公开Eigen::张量
- Python str to C++ to Python str
- 如何使用Python从C++中读取谷物序列化数据
- 如何在C++中使用pybind11加载一个pickle python列表
- 如何在c++中使用system()来运行包含空格的python脚本
- python集合的C++等价物是什么.计数器
- 如果C++对象的类在另一个boost模块中声明,如何使用boost将指向该对象的指针返回到python
- 从python调用openMP共享库时,未定义opnMP函数
- 使用JsonCpp将数据返回到带有pybind11的python会在python调用中产生Symbol not foun
- 如何将真正的字符串从python c-api转换为python脚本
- Python ctype 'c_char_p' Memory Leak