模块式编译的Makefile

本文介绍了如何创建一个适用于不同场景的模块式Makefile,旨在解决在Linux环境下频繁编译时的不便。Makefile考虑了当前目录为子目录或编译目录的情况,通过dirs文件和sources文件来指定编译路径和依赖。这样,无论在子目录还是编译目录,都可以方便地进行编译操作。
摘要由CSDN通过智能技术生成


              平时少不了在linux下写Demo,每次都gcc -o 或者单独写个不可移植的Makefile真的很麻烦,所以写个通用的Makefile很重要。我们在shell下make,有时当前目录下是子目录,有时是编译目录。这点需要区分。这里约定,如果当前目录下是子目录,则需要一个dirs文件。我们假设一个目录如下:

-rwxr--r-- 1 stewart stewart   68 Aug  8 09:36 dirs
drwxr-xr-x 2 stewart stewart 4096 Aug 14 15:49 Iteractive_Server_Main
drwxr-xr-x 2 stewart stewart 4096 Aug 14 15:48 Iterative_Logging_Server
drwxr-xr-x 2 stewart stewart 4096 Aug  9 14:47 Logging_Client
drwxr-xr-x 2 stewart stewart 4096 Aug 12 09:23 Logging_Server

这里的dirs文件内容:

DIRS=Logging_Server
DIRS+=Iterative_Logging_Server
DIRS+=Server_Main
代表依次编译Logging_Server , Iterative_Logging_Server和Server_Main三个目录。


如果当前目录就是需要编译的目录,这里约定需要一个sources文件,制定编译的依赖,目标名以及目标类型。假设有个目录如下:

-rwxr--r-- 1 stewart stewart  883 Aug  7 13:35 Iterative_Logging_Server.cpp
-rwxr--r-- 1 stewart stewart 1334 Aug  7 14:02 Iterative_Logging_Server.h
-rwxr--r-- 1 stewart stewart 2001 Aug  7 09:55 Logging_Handler.cpp
-rwxr--r-- 1 stewart stewart 1014 Aug  7 09:56 Logging_Handler.h
-rwxr--r-- 1 stewart stewart  324 Aug  9 14:20 sources
这里的sources文件如下:

T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值