python作为出名的胶水语言,可以调用其他语言的模块。在实际开发中一般使用python语言快速形成函数的模型,对于其中的不同模块,使用不同的语言进行实现。今天就先介绍如何使用python调用c语言中的模块。在这里使用python调用c编译生成的动态库文件。
#include<stdio.h>
void Hello()
{
printf("hello World!\n");
}
gcc -shared -o libhello,so hello.c
其中-shared表示编译生成动态库文件。
为了测试上述动态库的正确性,可以使用c代码先进行测试一下
#include <stdio.h>
#include <dlfcn.h>
#include <stdlib.h>
int main(void){
int (*myadd)();//fuction pointer
void *handle;
handle=dlopen("/home/xiang/python/c/libhello.so",RTLD_LAZY);//open lib file
if(!handle)
{
printf("%s \n",dlerror());
exit(1);
}
myadd=dlsym(handle,"Hello");//cal