python和C语言互相调用
1、Python调用C动态链接库使用C语言编译产生共享库,然后python使用ctype库里的cdll来打开共享库。(1)C语言文件:pycall.c/***gcc -o libpycall.so -shared -fPIC pycall.c*/#include <stdio.h>#include <stdlib.h>int foo(int a, int b){printf
·
1、Python调用C动态链接库
使用C语言编译产生共享库,然后python使用ctype库里的cdll来打开共享库。
(1)C语言文件:pycall.c
/***gcc -o libpycall.so -shared -fPIC pycall.c*/
#include <stdio.h>
#include <stdlib.h>
int foo(int a, int b)
{
printf("you input %d and %d\n", a, b);
return a+b;
}
(2)gcc编译生成动态库libpycall.so:gcc -o libpycall.so -shared -fPIC pycall.c。使用g++编译生成C动态库的代码中的函数或者方法时,需要使用extern "C"来进行编译。
(3)Python调用动态库的文件:pycall.py
import ctypes
ll = ctypes.cdll.LoadLibrary
lib = ll("./libpycall.so")
lib.foo(1, 3)
print('***finish***')
(注意在linux下测试效果比较好)

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)