简单的、智能搜索源文件的 Makefile

来源:互联网 发布:广西电子政务云计算 编辑:程序博客网 时间:2024/06/08 05:53

如果,你正在为寻找一个通用简易的、智能搜索源文件的 Makefile 而奔波的话,那么下边的Demo你有可能看得上它:

例如,你有一个目录,这个目录里目前只是生成一个二进制文件,其源码全部在这里,那么你可以尝试第一个版本的 Makefile

# Makefile, 2012-06-15 T1738# TODO# ----------------------------------NAME        = AppDemoVERSION     = 1.0.0RELEASE     = 01# ----------------------------------BIN         = $(NAME)OBJS        = $(patsubst %.cpp,%.o,$(wildcard $(SRC_DIR)/*.cpp))# TODO# BEGIN ----------------------------------# FoldersSRC_DIR     = .# FlagsCXXFLAGS    = -WallCXXFLAGS   += -I$(SRC_DIR)CPPFLAGS    = -D_DEBUGLDFLAGS     = -L$(SRC_DIR)LIBS        = -lpthread# END ----------------------------------.PHONY: all cleanall: $(BIN)$(BIN): $(OBJS)$(CXX) $(CPPFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)%.o: %.cpp$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $^ -o $@clean:$(RM) $(OBJS) $(BIN)


现在目录里应该有:

$ls --colormain.cpp  makefile

其中 main.cpp 是一个hello world小程序,下面编译并运行

$makeg++ -Wall -I. -D_DEBUG -c main.cpp -o main.og++ -D_DEBUG -L. main.o -o AppDemo -lpthread$ls --colorAppDemo  main.cpp  main.o  makefile$./AppDemoHello World!

爽了吧。还可以添加一个源代码,而不用修改 makefile。例如添加一个接口文件 HelloWorld.cpp 用来封装 sayHelloWorld() 方法


HelloWorld.h

// HelloWorld.h#ifndef _HELLOWORLD_H#define _HELLOWORLD_Hvoid sayHelloWorld();#endif


HelloWorld.cpp

// HelloWorld.cpp#include "HelloWorld.h"#include <iostream>void sayHelloWorld() {  std::cout << "Hello World!" << std::endl;}


以及修改以后的 main.cpp

// main.cpp#include "HelloWorld.h"int main(int argc, char **argv) {  sayHelloWorld();  return 0;}


清理现场,再次编译运行:

$make cleanrm -f ./HelloWorld.o ./main.o AppDemo$makeg++ -Wall -I. -D_DEBUG -c HelloWorld.cpp -o HelloWorld.og++ -Wall -I. -D_DEBUG -c main.cpp -o main.og++ -D_DEBUG -L. HelloWorld.o main.o -o AppDemo -lpthread$./AppDemoHello World!


很爽哦,下次研究其升级版~~~(不同的需求,不同的版本,但统一的基石!)

下载  - http://download.csdn.net/detail/wxqee/4375731


原创粉丝点击