设为首页 收藏本站
查看: 1031|回复: 0

[经验分享] 生成简单的Makefile文件(Python实现)

[复制链接]

尚未签到

发表于 2015-4-25 09:01:32 | 显示全部楼层 |阅读模式
  在linux下写几个测试程序,还要一行行的输入g++命令进行编译,当经常改测试代码的时候,那一次次的敲(或者一次次的上线箭头选)也感觉不爽,不如make来的快。用Makefile的好处就不用多说了,这里我写了个脚本,其功能是自动搜索当前目录(不包括子目录)下的“.c”文件生成Makefile文件。
代码在这里,功能有限(适用于单个文件是一个独立的测试代码的情况),需要的朋友可以稍作修改以满足需求。



1 #! /usr/bin/python
2 '''
3  File      : genMakefile.py
4  Author    : Mike
5  E-Mail    : Mike_Zhang@live.com
6 '''
7 import os
8
9 def genMakefileStr(dir,surfix = '.c'):
10     msg = ''
11     msg = msg + 'CC = gcc' + '\n'
12     msg = msg +  'CFLAGS = -g -O2 -Wall' + '\n\n'
13     
14     fList = []
15     for dirPath,dirNames,fileNames in os.walk(dir):
16         for file in fileNames:
17             name,extension = os.path.splitext(file)
18             if extension == surfix:
19                 fList.append(name)
20         break # only search the current directory
21     str1 = 'all:\n'
22     str2 = ''
23     str3 = 'clean:\n'
24     for f in fList:
25         str1 = str1 + '\tmake ' + f + '\n'
26         str2 = ('%s%s:%s.o\n') % (str2,f,f)
27         str2 = ('%s\t$(CC) -o %s %s.o\n\n') % (str2,f,f)
28         str3 = ('%s\trm -f %s\n') % (str3,f)
29     str3 = str3 + '\trm -f *.o\n'
30     strClean = '.c.o:\n\t$(CC) $(CFLAGS) -c -o $*.o $

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-60425-1-1.html 上篇帖子: Python之面向对象系列Prefast:随想 下篇帖子: python开发_python中的变量:全局变量和局部变量
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表