python程序调用C/C++代码
2020-12-13 13:40
标签:you library bit 模拟 one log sha 生成 sum 这篇用来记录在些模拟Canoe生成CAN数据桢工具时遇到的问题, 生成CAN数据桢,主要分为两个关注点: 1.如何从can信号名获取到can信号的ID长度以及信号的起始位,并将信号值按照一定的规则填写进去。 2.由于FCAN进行额checksum校验和activecount的规则,这部分算法使用C/C++最好,所以设计到python程序调用C/C++代码(也就是这篇文章) 1.如何用python调用C++代码: 这个是python官方库的cytpes模块的介绍,可以关注一下“Fundamental data types” (https://docs.python.org/3/library/ctypes.html) 这个提供了一个简单的例子调用C语言代码 (https://blog.csdn.net/theonegis/article/details/82490549) 这个python调用C++指针和指针数组的调用(变量比较乱,要好好看一下才能看出来) (https://blog.csdn.net/weixin_41770169/article/details/90675653) 这个python调用C代码,传入一个数组给函数,因为传进去的实质是指针,作为参数的数组内容会改变,两个例子 (https://blog.csdn.net/u012449363/article/details/76690540/) (https://blog.csdn.net/cahesi/article/details/80256638) 2.编译C/C++生成动态库 这个是如何创建C++动态库工程的方法 (https://blog.csdn.net/qianchenglenger/article/details/21599235) 这个是如何生成C++动态库的方法 32bit:直接用你的C++编译器32位的即可 64bit:使用mingw-w64编译器(如果没有请看第3条) 无论32bit或者是64bit,生成动态库方法如下: cd到你的动态库工程里面使用编译命令如下 “gcc -shared -o yourDynamicLibNmae.dll yourSourceFileName.cpp” 最后生成的“yourDynamicLibNmae.dll”文件即为所求 3.Python和C的编译器要保持一致,要不都是64bit的,要不都是32bit的 这个是windows下安装mingw-w64的离线安装包,安装完毕请重启电脑 (https://www.cnblogs.com/TAMING/p/9945389.html) 4.为了方便使用者,不必要每个人都安装python环境,可以将程序打包成exe (https://blog.csdn.net/shangxiaqiusuo1/article/details/81113900) 1> 安装打包库 pip install pyinstaller 2> 在python程序对应的路径打开命令行 pyinstaller -F yourEnterFile.py 对应生成的exe在同路径下的dist文件夹里面,名字为yourEnterFile.exe
出现这个现象即打包成功 3> 本程序因为涉及到dll,所以对应的dll也要拷贝在exe的目录里面 双击yourEnterFile.exe python程序调用C/C++代码 标签:you library bit 模拟 one log sha 生成 sum 原文地址:https://www.cnblogs.com/y-c-y/p/11530708.html