makefile是什么东西?对于使用.net,java开发的人员来说,这个东西好像从来没有听过,见过,更是没有用过。
其实对于一个程序员至少是准备做一个prefessional的开发人员来说,最好还是要了解一下makefile这个东西的。但是伴随着IDE越来越智能,越来越傻瓜,现在IT行业入门的门槛越来越低(真是不明白为什么面试的时候作假的人也越来越多呢?!)。智能的IDE给我们的程序员做了很多复杂而繁琐的工作。比如VS,Eclipse,Netbeans等等,这些工具都给我们带来了不少的工作效率提升,但是慢慢的也改变了我们的程序员,越来越傻瓜化,越来越离不开IDE环境,甚至是换另外一种IDE就无法正常工作了。
makefile就是一个在IDE智能化过程中被弱化甚至删除的技巧。现在除非是开发unix/linux平台下的软件,否则已经很难接触到makefile了。其实makefile就是一个文件,这个文件里面有生成这个项目的所有编译命令。你只要在编译的时候打“make”就完成了整个软件的编译工作。如果需要一些特定的功能,你可以使用“伪指令”来完成。比如你对于编译出来的可执行文件或者中间过程文件不放心,那么你可以定义一个叫“clean”的“伪指令”,然后通过make时候加入参数clean的方式来清除所有你想要删除的文件。这里你想到了什么?makefile可以运行shell是吧?对了,makefile中还可以加入shell脚本,是不是很方便?
那么我们在开发的时候怎么使用makefile给我们带来的便利呢?我的做法是使用两个makefile,一个就叫“makefile”,另外一个叫“makefile_gdb”,大家看文件名就应该知道两个文件的分工了吧?对的,一个生成的东西是拿来做调试使用的,一个拿来部署。因为有的时候你需要对于你的软件进行调试,这个时候你还会使用到一种叫”gdb“的技术(ps:怎么又没听过?看来你真是被IDE侵害的不轻啊,下回也给你扫扫盲。)。而调试的时候和发布的时候大家都知道软件的版本是不一样的,一般在iIDE中为了区分这两个版本:调试版本称为”debug”,发布版本称为“release”。但是怎么生成两者的文件的呢?肯定是通过了两个不同的指令集了。同理,我们必须也要保证使用两套不同的命令来生成不同版本的文件。那么怎么用呢?其实很简单,大家可以参考一下GUN的makefile标准,make命令是可以带参数的,你只要使用-f指定需要执行的文件就可以生成你想要的文件版本了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述