Python调用C语言代码

1.目的

python的优点是代码简单和强大的库,但作为解释性语言运行效率较低。但python支持调用c语言的代码。所以可以将一些核心且对效率要求较高的代码写在c中用python来调用。
本文展示如何用ctypes在python中调用c语言代码.

2. 如何做?

1.编写c语言代码命名为hello.c

#include <stdio.h>
void hello_world()
{
   printf("hello world!!\r\n");
}

2.将hello.c编译成动态链接文件dll(win)或so(linux,mac)

本文中$filename$替换成hello
For Windows

gcc -shared  -o $filename$.dll -fPIC $filename$.c

For Linux

$ gcc -shared -Wl,-soname, $filename$ -o $filename$.so -fPIC $filename$.c

For Mac

$ gcc -shared -Wl,-install_name, $filename$.so -o $filename$.so -fPIC $filename$.c

–shared -fPIC 是编译动态库的选项。

-o 是指定生成动态库的名称

3.使用库ctypes导入动态链接文件

from ctypes import *
test = cdll.LoadLibrary("./hello.dll")
#这里是相对路径,可以改成绝对路径

4.运行

test.hello_world()

参考链接

  1. https://www.cnblogs.com/downey-blog/p/10483342.html.
  2. https://www.jb51.net/article/166297.htm.
  3. https://www.cnblogs.com/downey-blog/p/10483342.html.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值