python可以调用c语言吗_python 调用c语言详解

本文详细介绍了Python如何调用C语言,包括CTYPES、SWIG、BOOST.PYTHON和CYTHON等方法。重点讲解了使用ctypes模块的步骤,并给出了创建和调用C动态库的实例。此外,还探讨了静态库与动态库的区别以及它们各自的优缺点。
摘要由CSDN通过智能技术生成

python语言调用c语言进行扩展,或者增加程序的运行速度都是特别方便的。同时还能获得与C或者C++几乎相同的执行性能。

Python调用C语言的方式

CTYPES,

SWIG,

BOOST.PYTHON,

CYTHON

python是解释型语言,只能调用c的动态链接库。

那什么是库,什么是静态库与动态库?

库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。

本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。

静态库与动态库的区别

静态库与动态库的区别主要是在链接阶段,分别称为静态链接方式与动态链接方式。

静态库是链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。

动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入

为什么需要动态库?

静态库在内存中存在多份拷贝导致空间浪费,假如静态库占1M内存,有2000个这样的程序,将占用2GB的空间

静态库对程序的更新、部署和发布页会带来麻烦。如果静态库liba.lib更新了,所以使用它的应用程序都需要重新编译、发布给用户。

创建动态库与静态库

静态库

生成.o文件

g++ -c StaticMath.cpp

生成.a文件

ar -crv libstaticmath.a Stat

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值