python中如何插入C语言运行?
1. python中如何插入C语言运行?
(1)编写C语言代码:
#include<stdio.h>void CFun()
{printf("---------我是c语言:-----------\n");printf("hello world!\n");printf("------------------------------\n");
}
(2)将c语言编译为动态库:
使用命令:gcc cfun.c -fPIC -shared -o lib_cfun.so
其中-shared参数表示生成动态链接库。
-fPIC参数表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的;所以动态载入时是通过代码拷贝的方式来满足不同的调用,而不能达到真正的代码段共享的目的。
-o参数表示重命名为lib_cfun.so。
(3)编写python代码:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from ctypes import *
from threading import Thread#加载动态库
lib = cdll.LoadLibrary("./lib_cfun.so")#创建一个子线程,让其执行c语言编写的函数
t = Thread(target=lib.CFun)
t.start()#主线程
print("----------------我是python语言!---------------------")print("----------------hello python!---------------------")
(4)执行python代码:
python中如何插入C语言运行?相关推荐
- python中的装饰器怎么运行_Python 装饰器入门(上)
翻译前想说的话: 这是一篇介绍python装饰器的文章,对比之前看到的类似介绍装饰器的文章,个人认为无人可出其右,文章由浅到深,由函数介绍到装饰器的高级应用,每个介绍必有例子说明.文章太长,看完原文后 ...
- python语言结构化语言_如何在python中处理结构化语言文件
我有一个像这样的大型结构化语言文件:TASK SchM_Task { TYPE = AUTO; SCHEDULE = NON; PRIORITY = 160; ACTIVATION = 1; TIMI ...
- python中的elif语句怎么运行_Python的elif语句怎么用
else和elif语句也可以叫做子句,因为它们不能独立使用,两者都是出现在if.for.while语句内部的.else子句可以增加一种选择:而elif 子句则是需要检查更多条件时会被使用,与if和el ...
- python中nameerror怎么处理_Python 运行报错NameError出现原因,怎么解决
刚刚学习python语言时常会遇到一些问题,能看懂常见的python 捕获异常错误类型很重要.python ioerror很常见,NameError是最普通也是最常会遇到的内建报错类名,其代表问题出现 ...
- python中的模块如何学习_在python中学习队列模块(如何运行它)
最近引入了队列设计,关于延迟处理能力以及实现"FIFO"等. 查看文档以尝试获取示例队列,以了解如何在我自己的设计/程序中实现它.但我遇到运行此代码的问题: import queu ...
- UpdatePanel的内容中出现自定义多语言运行异常
2019独角兽企业重金招聘Python工程师标准>>> 我们项目有双语要求,采用的是自定义符号控制.在页面加载时进行翻译. 在xml文件中有如下格式的配置 <items> ...
- char在python中什么意思_C语言-char 类型基本概念
char类型的变量在内存中是如何存储的呢? char 是占一个字节的 int num; char charValue; printf("num 的内存地址%p\n",&nu ...
- 有两个python怎么停用其中一_如何在python中停止另一个已经运行的脚本?
There is a way to start another script in python by doing this: import os os.system("python [na ...
- 在Python中使用import cv2,运行时提示no module named ‘cv2‘ 怎么办
使用pip install cv2 发现未安装成功 查询发现要安装opencv,使用pip install opencv也是没有成功 最后使用 pip install opencv-python 安装 ...
最新文章
- Linux-centos nginx 解决“虚拟机远程连接老是断掉” 改变网络配置
- NB-Iot烟感01:烟感探测器原理和规格
- java htmlparser 使用教程_Java解析HTML之HTMLParser使用与详解
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波
- BZOJ1016:[JSOI2008]最小生成树计数——题解
- 网站建设方案撰写需要注意哪些事项?
- 2018 终了,是时候秀出我的 Git 进化日志了!
- 谷歌发布 Windows 10 图形组件 RCE 漏洞的详情
- 300万知乎用户数据如何大规模爬取?如何做数据分析?
- HackerOne年度报告:安全众测推出四年,成果几何?
- 观测云产品更新|新增阿里云账户结算方式;新增 DQL 查询查看器;新增基础设施网络模块等
- FFmpeg之视频转码
- nginx 之安全配置
- python连通域提取 原理_连通域的原理与Python实现
- 用Android做的一个简单的视频播放器
- 神经管理学告诉你:学了管理学就能运筹帷幄吗?
- html网络语言什么意思,网络语言开车什么意思 网络用语开车是什么意思
- [智能车]平衡车/直立车的入门经验(代码讲解)
- Android 搭建局域网服务器
- 行级锁,表级锁,乐观锁,悲观锁简介
热门文章
- JavaScript 案例:房贷计算器
- 关于主板不支持SAS硬盘求解大佬
- WIN8以上操作系统安装K3 WISE 14.0及以下版本客户端出现.Net Framework3.5无法正常安装的解决方案
- 默纳克修改楼层服务器菜单,默纳克系统小键盘各菜单功能详述
- 只有技能精进,才能无惧寒冬
- 用汇编实现2进制到16进制 2进制到10进制转换并按要求输出
- 区块链100讲:以实例形式深入浅出讲透BANCOR算法
- 淘宝直播h5页面js逆向解析
- 社交APP开发将依托大数据与网络算法?
- JetBrains调查:JavaScript最流行,Python超越Java