subprocess是Python的一个模块,用于生成新的进程;这里介绍如何利用该模块实现软件工程makefile的编译。
import subprocess
def cmd_subprocess(prj_path, prj_cmd):
process = subprocess.Popen(prj_cmd, cwd=prj_path, shell=True)
return process
首先基于subprocess模块创建上述函数,其中“prj_path”指软件工程Makefile的路径,“prj_cmd”指要执行的命令,以字符串形式,如"make clean && make bin "
假设我在E:\Firmware路径下有有一个软件工程sdk,该工程目录下有Makefile文件,该Makefile文件里有以下几个伪命令。
.PHONY : bin hex clean
则可以按照以下python代码实现上述工程的编译。
prj_path = "E:\\Firmware\\sdk"
prj_cmd = "make clean && make bin "
p1 = cmd_subprocess(prj_path, prj_cmd)
p1.wait()
if p1.returncode != 0:
os._exit(1)
后续扩展可根据项目需求,利用python强大的数据处理能力,事项bin文件后处理功能,如bin转hex,bin增加头文件信息等。