注意:在使用c++写动态库时需要要在声明函数时前面加上extern "C" 或 extern "C"{....}方式
// 因为使用g++编译时函数名会改变,比方print_msg(const char*)
// 会编译成函数名 print_msg_char,这会导致python调用这个函数的时候
// 找不到对应的函数名,这有加了 extern "C",才会以C语言的方式进行
// 编译,这样不会改变函数名字
生成出来的so库可用nm或nm -g命令查看动态库中包含的模块 T标识表示接口函数 B表示全局变量
我们首先生成.so文件
首先, 我们写一个a.c文件
1
2
3
4
5
6
7
8
9
|
#include <stdio.h>
void
show() {
printf
(
"this is a test\n"
);
}
int
add(
int
a,
int
b) {
return
a + b;
}
|
然后输入命令
1
|
|