python编写makefile_用python写makefile

本文介绍了如何使用Python脚本来生成makefile,特别是在C/C++项目中,当源文件分布在多个文件夹下时。脚本通过递归搜索源文件,创建对应的编译规则,并自动管理目标文件的生成。此方法避免了手动维护复杂的makefile。
摘要由CSDN通过智能技术生成

温馨提示:阅读本文的同学最好能了解makefile和python的编写规则。

不懂的同学能够先保存在收藏夹。以便日后查看。

事实上之前我一直非常懒,我不想了解makefile规则。由于在linux下开发我一直使用Qt creator。(非常多时候正是一些“懒人”的创造力。解放了我们的双手,显然如今我们还须要用双手写makefile)。Qt creator是一个非常好的IDE。并且能够跨平台开发。可是相比VS,显然还是不够优秀。

因此非常多开发人员都会选择在Windows下开发C/C++程序,然后部署在Linux下运行。当然我也不例外。所以近期花了几个晚上了解makefile的编写规则。

開始的时候。我參照网上一些makefile的样例,写了一个初版的makefile。然而这个makefile在编译我的project的时候报错。

主要出错体如今:

%.o: %.cpp

$(CXX) -fpic -c $(INCPATH) $< -o $@

当然能够写成

$(objdir)/%.o:$(srcdir)/%.cpp

$(CXX) -fpic -c $(INCPATH) $< -o $@

原因在于:

1、.o文件与.cpp文件处于不同的文件夹下。

2、不同的.o文件或不同的.cpp文件处于不同的文件夹下。

这时我找到两种解决方法:

1、就是用VPATH这个特殊变量,可是我不可能将全部要包括的文件夹都一一手动包括进来,于是我放弃。

2、就是把全部的编译规则列举出来。

我终于选择另外一种解决方法。

由于之前遇到这个困难时,我特意去了解Qt生成的makefile(事实上这个makefile是根据.proproject文件生成的)。而这个makefile正是将全部的编译规则都列举出来。

于是就有以下这个python脚本。事实上開始的时候我想用shell来做这一步工作的,可是我看到sed和awk。我头都晕,之前还一直抵触学习sed和awk。因此最后选择了python。

#encoding: utf-8

import os

import os.path

import sys

#sys.exit(0);

###################################################################################

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值