makefile 太复杂了,学的不精。自己用Python写一个构建工具,经过简单测试,可用
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import argparse
import os
import commands
import re
# .c对应的.o文件
def obj_file_path(srcpath):
return srcpath[:-1] + 'o'
# 检测.[hc]是否比.o文件新
def is_newer_than(src, obj):
srcmtime = os.stat(src).st_mtime
if os.path.exists(obj):
objmtime = os.stat(obj).st_mtime
else:
objmtime = 0
return srcmtime > objmtime
# 检查是否需要重新编译.c文件
def need_compile_src(srcpath):
output = commands.getoutput('{} -MM {}'.format(cc, srcpath))
hlist = output.split(':')[1].strip().split(' ')
hfiles = [h for h in hlist if h.endswith('.h')]
objpath = obj_file_path(srcpath)
# 检查依赖的头文件是否更新了
for h in hfiles:
if is_newer_than(h, objpath):
return True
# 检查源文件是否更新了
if is_newer_than(srcpath, o

博主因觉得makefile复杂,转而使用Python创建了一个简易构建工具,并经过测试,证明其可用性。文中展示了如何用Python实现类似makefile的功能,并提到了在树莓派上的应用探索。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



