python调用c++动态库_python使用ctypes调用C/C++动态库
时间: 2023-07-30 16:07:20 浏览: 193
python调用go或c语言.pdf
使用ctypes可以方便地在Python中调用C/C++编写的动态库。下面是一个简单的例子,说明如何使用ctypes调用C++动态库。
假设有这样一个C++动态库:
```cpp
#include <iostream>
using namespace std;
extern "C" {
int add(int a, int b) {
return a + b;
}
}
```
其中,`extern "C"`表示使用C语言的函数名命名规则。
使用以下Python代码来调用该动态库:
```python
import ctypes
# 加载动态库
lib = ctypes.cdll.LoadLibrary('./libtest.so')
# 调用动态库中的函数
result = lib.add(1, 2)
print(result)
```
其中,`ctypes.cdll.LoadLibrary`用于加载动态库,`lib.add`用于调用动态库中的函数。
注意,ctypes默认使用C语言的函数名命名规则,如果想要调用C++函数,需要在C++中使用`extern "C"`修饰。此外,还需要确保编译时使用了与Python解释器相同的编译器、编译选项和链接选项。
阅读全文